参考:http://blog.csdn.net/liang19890820/article/details/51658574
http://blog.csdn.net/sky101010ws/article/details/51682725
https://www.cnblogs.com/coolbear/p/7196961.html
目录
简述
环境准备
WIN32编译步骤
?WIN64编译步骤
简述
OpenSSL 是一个开源的第三方库,它实现了 SSL(Secure SocketLayer)和 TLS(Transport Layer Security)协议,被广泛企业应用所采用。对于一般的开发人员而言,在 Win32 OpenSSL 上下载已经编译好的 OpenSSL 库是省力省事的好办法。对于高级的开发用户,可能需要适当的修改或者裁剪 OpenSSL,那么编译它就成为了一个关键问题。
下面,主要讲述如何在 Windows 上编译 OpenSSL 库。
环境准备
-
下载并安装 Visual Studio(以 VS 2015 为例)。
-
下载并安装 ActivePerl。
下载地址:http://www.activestate.com/activeperl/downloads
我下载的是:ActivePerl-5.26.0.2600-MSWin32-x64-403866.exe打开命令提示符,定位到
D:\Program Files\Perl\eg
目录,执行perl example.pl
,若提示Hello from ActivePerl!
则说明 Perl 安装成功: -
下载并安装 Nasm 汇编器,并将
D:\Program Files\NASM
添加到系统环境变量 Path 中。
下载地址:http://www.nasm.us/
我下载的是:nasm-2.13.01-installer-x64.exe -
下载并安装 OpenSSL
下载地址:http://www.openssl.org/
我下载的是:openssl-1.0.2m.tar.gz完成上述所有步骤,将 OpenSSL 包解压至
E:\openssl-1.0.2m
,便可以进行编译了。注意: 解压后的目录中有两个文件 - INSTALL.W32、INSTALL.W64,包含了 OpenSSL 的各个编译步骤。
WIN32编译步骤
-
打开vs2015命令提示符
-
定位至
E:\openssl-1.0.2m
-
release32位版本:
输入 perl Configure VC-WIN32 no-asm --prefix="E:\OpenSSL"(将其安装到E:\OpenSSL
)
debug32位版本:
输入 perl Configure debug-VC-WIN32 no-asm --prefix="E:\OpenSSL"(将其安装到E:\OpenSSL
)no-asm
表示不用汇编 -
输入
ms\do_nasm
-
然后输入
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 四个文件夹:
WIN64编译步骤 - 打开vs2015命令提示符
- 定位至
E:\openssl-1.0.2m
: - release64位版本:
输入 perl ConfigureVC-WIN64A
no-asm --prefix="E:\OpenSSL"(将其安装到E:\OpenSSL
)
debug64位版本:
输入 perl Configure debug-VC-WIN64A
no-asm --prefix="E:\OpenSSL"(将其安装到E:\OpenSSL
)no-asm
表示不用汇编 - 输入 ms\do_win64a.bat
- 然后输入
nmake -f ms\ntdll.mak
- 输入
nmake -f ms\ntdll.mak test
,若最终显示passed all tests
则说明生成的库正确 - 输入
nmake -f ms\ntdll.mak install
- 完成之后,会在
E:\OpenSSL
目录下生成 bin、include、lib、ssl 四个文件夹
注意:
- 若要编译静态库,则用
ms\nt.mak
替换掉上面用到的ms\ntdll.mak
即可。 - 若要生成不带汇编支持的库,则需将上述第 2、3 步用
perl Configure VC-WIN32 no-asm --prefix=E:\OpenSSL
和ms\do_ms
替换。 - 在
E:\openssl-1.0.2m\tmp32dll
文件夹下包含相应的汇编文件。 -
64位
ms\do_win64a.bat