Windows 下编译 OpenSSL

简述

OpenSSL 是一个开源的第三方库,它实现了 SSL(Secure SocketLayer)和 TLS(Transport Layer Security)协议,被广泛企业应用所采用。对于一般的开发人员而言,在 Win32 OpenSSL 上下载已经编译好的 OpenSSL 库是省力省事的好办法。对于高级的开发用户,可能需要适当的修改或者裁剪 OpenSSL,那么编译它就成为了一个关键问题。

下面,主要讲述如何在 Windows 上编译 OpenSSL 库。

环境准备

  1. 下载并安装 Visual Studio(以 VS 2015 为例)。

  2. 下载并安装 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 安装成功:

    这里写图片描述

  3. 下载并安装 Nasm 汇编器,并将 D:\Program Files\NASM 添加到系统环境变量 Path 中。 
    下载地址:http://www.nasm.us/ 
    我下载的是:nasm-2.13.01-installer-x64.exe

  4. 下载并安装 OpenSSL 
    下载地址:http://www.openssl.org/ 
    我下载的是:openssl-1.0.2m.tar.gz

    完成上述所有步骤,将 OpenSSL 包解压至 E:\openssl-1.0.2m,便可以进行编译了。

    注意: 解压后的目录中有两个文件 - INSTALL.W32、INSTALL.W64,包含了 OpenSSL 的各个编译步骤。

编译步骤

  1. 打开命令提示符,定位至 E:\openssl-1.0.2m

    这里写图片描述

  2. 输入 perl Configure VC-WIN32 --prefix=E:\OpenSSL(将其安装到 E:\OpenSSL):

    这里写图片描述

  3. 输入 ms\do_nasm

    这里写图片描述

  4. 将命令提示符定位至 D:\Program Files\Microsoft Visual Studio 14.0\VC\bin, 然后输入vcvars32.bat

    这里写图片描述

    如果没有这一步,会提示 nmake 不是内部或外部命令等一系列错误。

  5. 再次将命令提示符定位至 E:\openssl-1.0.2m,然后输入 nmake -f ms\ntdll.mak

    这里写图片描述

    完成之后,会在 openssl-1.0.2m 目录下生成一个名为 out32dll 的文件夹,里面包含了一些动态库和 exe 文件:

    这里写图片描述

  6. 输入 nmake -f ms\ntdll.mak test,若最终显示 passed all tests 则说明生成的库正确:

    这里写图片描述

  7. 输入 nmake -f ms\ntdll.mak install

    这里写图片描述

    完成之后,会在 E:\OpenSSL 目录下生成 bin、include、lib、ssl 四个文件夹:

    这里写图片描述

注意:

  • 以上编译的是 release 版本,若要编译 debug 版,将上述第 2 步中的 VC-WIN32 改成 debug-VC-WIN32即可。
  • 若要编译静态库,则用 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 文件夹下包含相应的汇编文件。

猜你喜欢

转载自blog.csdn.net/mandagod/article/details/79736069