windows编译openssl

概览:

准备

https://www.openssl.org传送门

进入下载页,下载最新版(以1.0.2s为例),并解压。

需要有Visual studio 2019,和Active Perl

编译启动

workbranch

打开x64 Native Tools Command Prompt for VS 2019,切换到vs2019 x64开发环境。

切记必须为cmd环境,不能为PowerShell。

1
2
3
4
5
6
**********************************************************************
** Visual Studio 2019 Developer Command Prompt v16.1.6
** Copyright (c) 2019 Microsoft Corporation
**********************************************************************
[vcvarsall.bat] Environment initialized for: 'x64'

perl Configure VC-WIN64A

进入到OpenSSL的文件夹,运行perl Configure VC-WIN64A,输出。

ms\do_win64a.bat

修改完再执行

1
2
3
4
5
6
7
8
9
10
11
12
13
修改ms\do_win64a.bat文件

        perl util\mk.def.pl 32 libeay > ms\libeay32.def

        perl util\mk.def.pl 32 ssleay > ms\ssleay32.def

          修改为

        perl util\mk.def.pl 64 libeay > ms\libeay64.def

        perl util\mk.def.pl 64 ssleay > ms\ssleay64.def

    }

nmake -f ms\nt.mak

修改完再执行

1
2
3
4
5
6
修改
libeay64.def 第一行LIBEAY32改为LIBEAY64
ssleay64.def 第一行SSLEAY32 为SSLEAY64

修改ntdll.mak(nt.mak)中
所有libeay32和ssleay32改为libeay64 ssleay64, 不管大小写,只要将32改为64即可

nmake -f ms\ntdll.mak

修改完再执行

1
2
3
4
5
6
修改
libeay64.def 第一行LIBEAY32改为LIBEAY64
ssleay64.def 第一行SSLEAY32 为SSLEAY64

修改ntdll.mak(nt.mak)中
所有libeay32和ssleay32改为libeay64 ssleay64, 不管大小写,只要将32改为64即可

执行安装

运行test脚本

等待编译完成,进入out32dll目录,运行test脚本

1
2
cd out32dll
..\ms\test.bat

看到Passed all tests,基本上也就大功告成了。

这个时候去out32dll目录下就可以找到我们需要的库了。要用的就是libeay64, ssleay64