使用VC6.0 编译OPENSSL

来源:互联网 发布:怎么在电脑上开淘宝店 编辑:程序博客网 时间:2024/05/21 19:29
使用VC6.0 编译OPENSSL
在学习中记录和分享
时间: 2015-5-27
需要的工具
Openssl、NASM、Perl
下载地址:
Openssl
 
http://www.openssl.org/source/


NASM (Netwide Assembler)
 
http://www.nasm.us/
Perl
 
http://www.perl.org/




一、先安装Perl,默认安装,一直点击下一步就可以
解压openssl-1.0.2a.tar.gz到 c:\openssl-1.0.2a
解压nasm-2.11.08-win32.zip到c:\nasm-2.11.08,添加PATH路径c:\nasm-2.11.08  
目的使用Visual C++和NASM 交叉编译


二、检查vc6.0的环境,打开cmd,分别输入cl、nmake。出现下面的界面说明环境设置正确
 
设置方法,复制下面代码,保存为vc6.0vas.bat,在cmd下运行就可以了。
echo Visual C++ 6.0 环境变量设置
set include=C:\Program files\Microsoft Visual Studio\VC98\include;%include%
echo -- Added VC++6.0 头文件
set LIB=C:\Program files\Microsoft Visual Studio\VC98\lib;%LIB%
echo -- Added VC++6.0 库文件
set PATH=C:\Program Files\Microsoft Visual Studio\Common\Tools\WinNT;D:\Program Files\Microsoft Visual Studio\Common\MSDev98\Bin;D:\Program Files\Microsoft Visual Studio\Common\Tools;C:\Program Files\Microsoft Visual Studio\VC98\bin;%PATH%
echo -- Added VC++6.0 to Path
set MSDevDir=C:\Program Files\Microsoft Visual Studio\Common\MSDev98
echo -- Added MSDevDir
echo -- 用法:msdev proj1.dsw /make "proj1 - win32 debug"
echo -- 用法:nmake /NOLOGO /a /s /f makefile.mak 
d:
三、检查NASM,正确结果如下
 
四、检查Perl,正确结果如下
 


OpenSSL编译方法-交叉编译
cmd切换到openssl-1.0.2a,输入命令
perl Configure VC-WIN32 --prefix=c:\some\openssl\dir
 
显示结果
 
这步会在ms文件夹生成两个makefiel:nt.mak、ntdll.mak 。nt.mak是静态编译的, ntdll.mak时动态编译的。
选择交叉编译,输入ms\do_nasm
 
输入nmake -f ms\ntdll.mak
 
编译完成截图
 
有提示ip6的错误,文件已经成功编译好了,保存在C:\openssl-1.0.2a\out32dll
 




OpenSSL编译方法-VC独立编译
很多人在不安装NASM,不设置NASM环境,使用上面的命令编译时,会出现如下的错误!
:tmp32\sha1-586.asm(1427) : error A2070: invalid instruction operands
:tmp32\sha1-586.asm(1571) : error A2070: invalid instruction operands
:NMAKE : fatal error U1077: 'ml' : return code '0x1
明显这里是使用了汇编的源文件,但是没有适合的汇编编译器。网上的教程时复制一个ml.exe到VC6.0的环境中。实际测试在0.9.8版本中可以编译通过。在这个版本中时不行的。只能使用NASM编译或者编译选项中添加no-asm。下面就时具体的编译过程


编译的命令
perl Configure VC-WIN32 no-asm --prefix=c: /openssl
 
输入命令ms\do_ms  


开始编译,这里选择动态编译nmake -f ms\ntdll.mak
 
自动编译过程
 
OK,成功编译完成了
 
0 0
原创粉丝点击