OpenSSL 是一个开源的第三方库,它实现了 SSL(Secure SocketLayer)和 TLS(Transport Layer Security)协议,被普遍企业应用所采用。对于通常的开发人员而言,在 Win32 OpenSSL 上下载已经编译好的 OpenSSL 库是省力省事的好办法。对于高级的开发用户,可能须要适当的修改或者裁剪 OpenSSL,那么编译它就成为了一个关键问题。html
下面,主要讲述如何在 Windows 上编译 OpenSSL 库。web
下载并安装 Visual Studio(以 VS 2015 为例)。ui
下载并安装 ActivePerl。
下载地址:http://www.activestate.com/activeperl/downloads
我下载的是:ActivePerl-5.26.0.2600-MSWin32-x64-403866.exespa
打开命令提示符,定位到 D:\Program Files\Perl\eg
目录,执行 perl example.pl
,若提示 Hello from ActivePerl!
则说明 Perl 安装成功:.net
下载并安装 Nasm 汇编器,并将 D:\Program Files\NASM
添加到系统环境变量 Path 中。
下载地址:http://www.nasm.us/
我下载的是:nasm-2.13.01-installer-x64.exedebug
下载并安装 OpenSSL
下载地址:http://www.openssl.org/
我下载的是:openssl-1.0.2m.tar.gzcode
完成上述全部步骤,将 OpenSSL 包解压至 E:\openssl-1.0.2m
,即可以进行编译了。htm
注意: 解压后的目录中有两个文件 - INSTALL.W3二、INSTALL.W64,包含了 OpenSSL 的各个编译步骤。blog
打开命令提示符,定位至 E:\openssl-1.0.2m
:图片
输入 perl Configure VC-WIN32 --prefix=E:\OpenSSL
(将其安装到 E:\OpenSSL
):
输入 ms\do_nasm
:
将命令提示符定位至 D:\Program Files\Microsoft Visual Studio 14.0\VC\bin
, 而后输入vcvars32.bat
:
若是没有这一步,会提示 nmake 不是内部或外部命令等一系列错误。
再次将命令提示符定位至 E:\openssl-1.0.2m
,而后输入 nmake -f ms\ntdll.mak
:
完成以后,会在 openssl-1.0.2m
目录下生成一个名为 out32dll 的文件夹,里面包含了一些动态库和 exe 文件:
输入 nmake -f ms\ntdll.mak test
,若最终显示 passed all tests
则说明生成的库正确:
输入nmake -f ms\ntdll.mak install
:
完成以后,会在 E:\OpenSSL
目录下生成 bin、include、lib、ssl 四个文件夹:
注意:
VC-WIN32
改为 debug-VC-WIN32
便可。ms\nt.mak
替换掉上面用到的 ms\ntdll.mak
便可。perl Configure VC-WIN32 no-asm --prefix=E:\OpenSSL
和 ms\do_ms
替换。E:\openssl-1.0.2m\tmp32dll
文件夹下包含相应的汇编文件。