[Windows] Windows平台下编译OpenSSL
准备工作:
1.Perl
建议使用5.30以上版本,本人在使用时发现28的版本好像在配置openssl的时候有问题。
ps:ActivePerl 和 Strawberry Perl 都可以
2.nasm
如果不适用汇编库,则可以不下载
3.VS 编译环境
主要为了使用nmake
配置及编译:
1.打开包含开发环境的命令行:
2.确保Perl可用,nasm可用
3.切换到源码目录下,运行下述命令:
Perl Configure no-asm VC-WIN32
如果是编译64位,则:
Perl Configure no-asm VC-WIN64A
之后会提示已经配置完毕。
4.开始编译:
执行如下命令:
nmake
此时可以在源码同级目录下获得如下文件:
openssl的输出有三个部分:
1)命令行 :openssl.exe
2)加密库:(动态库)libcrypto.lib 和 libcrypto-1_1.dll
(静态库)libcrypto_static.lib
3)协议库:(动态库)libssl.lib 和 libssl-1_1.dll
(静态库)libssl_static.lib
5.运行测试用例:
执行如下命令:
nmake test
源码目录:
apps --- openssl.exe
ssl --- libssl.lib
crypto --- libcrypto.lib
PS:
建议每个架构版本(WIN32/WIN64)都配置一个独立的源码目录,如果一次编译出现问题,建议删除原目录,在重新创建目录重新执行上述流程。
如果真的想在同一个源码目录下编译输出不同架构版本,则需要再Configure的时候指定 --prefix 路径,同时在编译了某个版本后,需要运行 nmake clean 清除之前生成的中间临时文件后,再进行下一次 Configure 和 nmake。
这样做比较麻烦也容易出现未知的错误。