解压OpenSSL以后, 在其目录下可以发现有个INSTALL.W32文件,这个文件就是在windows下的安装说明。你可以用UltraEdit打开它。
1.安装perl,perl可以从http://www.activestate.com/ActivePerl下载。
2.安装编译器(任意一个都可以),我仅以Visual C++为例子。
Visual C++
Borland C
GNU C (Cygwin or MinGW)
3.如果通过汇编的方式编译,需要安装汇编语言编译器。MASM NASM都可以。如果速度要求不高,可以不用汇编的方式编译,即不需要安装。MASM一般由VC++自带,Windows NT 4.0 DDK a和Windows 98 DDK也带有MASM。把XXXXXml.exe和XXXXXml.err文件,提取出来,命名为ml.exe和ml.err,并把他们放到PATH路径中即可。
NASM可以免费获取,很多地方都可以下载到,如http://www.kernel.org/pub/software/devel/nasm/binaries/win32/
nasmw.exe文件也需要放到PATH路径中。下载拷贝到Microsoft Visual Studio\VC98\Bin,编译需要用.
4.打开一个DOS窗口,运行>vcvars32.bat,cd命令进入入openssl的目录下面,
输入:perl Configure VC-WIN32;
如果不使用汇编编译器,输入:perl Configure VC-WIN32 no-asm
5.如果使用MASM,接着输入:ms\do_masm
如果使用NASM,接着输入:ms\do_nasm
如果不使用汇编语言编译器,输入:ms\do_ms
6.在DOS窗口中接着输入:nmake -f ms\ntdll.mak
运行>nmake -f ms\nt.mak(静态库编译)
编译时在app\s_cb.c的733行等4处出现struct in6_addr未定义错误,查了一下,ws2tcpip.h中定义的是struct in_addr6 和 IN6_ADDR,所以加入#define in6_addr in_addr6解决。
7.如果没有错误的话,编译就通过了,在out32dll目录下面就可以看到,生成的dll文件和可执行文件了。
去out32dll拷贝出动态库,out32dll拷贝出静态库,复制出Openssl目录下的inc32目录就全了。
检查下是否成功,执行命令:“nmake -f ms\ntdll.mak test”
转自:http://blogger.org.cn/blog/more.asp?name=OpenSSL&id=18972