环境
- 下载安装Visual Studio 2019
安装时在【工作负载】必须勾选【使用C++的桌面开发】 - 下载安装Perl
安装任意最新版的Perl即可 - 下载源码https://www.openssl.org/source/old/
因为1.1.x
版本之后库的名称发生变化,从libeay32.dll
和ssleay32.dll
变成了libssl.ddl
和libcrypto.dll
,我需要libeay32.dll
因此下载1.0.x
最新版本即可(此时最新版本为openssl-1.0.2u.tar.gz
,也可进入下载历史版本 ),解压到C:\
(可以是其他磁盘) - 下载NASM
从https://www.nasm.us/pub/nasm/releasebuilds/下载一个较新版本即可(我下载了2.14),安装完之后记得配置环境变量PATH
编译
- 打开编译控制台
编译32位的,因此在开始菜单的Visual Studio 2019目录下选择【x86 Native Tools Command Prompt for VS 2019】(选择x64可能会导致模块计算机类型与目标计算机类型不匹配
错误)
- 配置编译版本
在控制台切换到C:\openssl-1.1.1d
目录,使用perl
进行配置,根据要编译的目标平台和版本选择,比如VC-WIN32
、debug-VC-WIN32
、VC-WIN64A
、debug-VC-WIN64A
等,我需要32位的选择VC-WIN32
(也可以选择debug
版本,我本地选择64位的时候编译有错误,具体原因没有细看)
C:\openssl-1.0.2u>perl Configure VC-WIN32 --prefix=C:\openssl
查看是否执行成功。如果提示NASM not found
,请先安装NASM
并配置环境变量之后重新打开控制台进行执行以上命令,确保以上命令执行成功再执行以下命令生成makefile(1.1.x
及以上版本,不需要执行以下命令)
C:\openssl-1.0.2u>ms\do_nasm.bat
- 编译与安装
使用nmake
进行编译和安装
C:\openssl-1.0.2u>nmake -f ms\ntdll.mak
C:\openssl-1.0.2u>nmake -f ms\ntdll.mak install
执行完之后,在prefix
指定的目录C:\openssl
中将主要包含以下结构
C:\OPENSSL
├─bin
│ libeay32.dll
│ openssl.exe
│ ssleay32.dll
├─include
│ └─openssl
│ *.h
├─lib
│ │ libeay32.lib
│ │ ssleay32.lib
│ └─engines
│ *.dll
└─ssl
openssl.cnf
把include
和lib
路径分配置到环境变量INCLUDE
和LIB
里面以便后续引用,如果需要使用openssl.exe
命令把bin
配置到PATH
变量里面