【OpenSSL】Windows下编译OpenSSl 1.1.1
概述: windows系统编译OpenSSL 1.1.1版本操作步骤
[toc]
0x01、编译环境说明
- 操作系统:win10
- 编译器:vs2017
- OpenSSL: 1.1.1W
0x02、依赖工具说明
根据官方说明,OpenSSL编译除了Visual Studio 2019以外,为方便编译,需要安装Strawberry Perl和NASM,下载地址分别如下:
Strawberry Perl:Strawberry Perl for Windows
NASM:NASM,这是一个汇编器
**特别注意:**Perl安装后会自动添加到环境变量中,而NASM不会,一定要在环境变量Path中添加NASM.exe所在的目录,否则可能会出现意想不到的错误。
0x03、编译步骤
下载源码
从Github中可以直接下载:GitHub - openssl/openssl: TLS/SSL and crypto library
或者在 OpenSSL 官方去下载 OpenSSL
也可以参考官方文档进行编译:openssl/NOTES-WINDOWS.md at master · openssl/openssl
0x04、编译
- 
使用管理员权限打开 vs2017 的开发人员命令提示符   
- 
打开后切换到 openssl 解压目录:   
- 
配置 Perl,参考官方文档配置 - 
perl Configure VC-WIN32if you want 32-bit OpenSSL or
- 
perl Configure VC-WIN64Aif you want 64-bit OpenSSL or
- 
perl Configure VC-WIN64-ARMif you want Windows on Arm (win-arm64) OpenSSL or
- 
perl Configure VC-WIN64-CLANGASM-ARMif you want Windows on Arm (win-arm64) OpenSSL with assembly support using clang-cl as assembler or
- 
perl Configure VC-CLANG-WIN64-CLANGASM-ARMif you want Windows on Arm (win-arm64) OpenSSL using clang-cl as both compiler and assembler or
- 
perl Configure VC-WIN32-HYBRIDCRTif you want 32-bit OpenSSL dependent on the Universal CRT or
- 
perl Configure VC-WIN64A-HYBRIDCRTif you want 64-bit OpenSSL dependent on the Universal CRT or
- 
perl Configureto let Configure figure out the platform
 特别注意:–prefix选项指定的安装路径必须是绝对路径,若不指定,则默认会安装在 C:\Program Files (x86)\下面,如果你不是用管理员权限执行,则会出现*Permission Denied*错误,切记。1 perl Configure VC-WIN32 --prefix=E:\OpenSSL # 将其安装到 E:\OpenSSL 目录
- 
- 
nmake
- 
nmake test
- 
namke install
0x05、使用
使用时,在工程引入文件和库文件添加 Openssl 安装目录即可。
 
0x06、补充说明
如果要编译 /mt、/mtd、mdd 等版本,则需要修改 makefile 文件。
使用 perl 命令后会生成 makefile 文件。
| 1 |  | 
makefile 文件修改 CNF_CFLAGS 配置,如下所示:
| 1 |  | 
在编译一次之后如果需要重新编译,则需要清除缓存,清楚缓存命令:
| 1 |  | 
补充
完整编译如下:
| 1 |  |