Windows下编译openssl-1.0.2m

一、下载文件并安装工具

1、下载OpenSSL源码

openssl官网:https://www.openssl.org

openssl版本:openssl-1.0.2m.tar.gz

下载地址: https://www.openssl.org/source/old/1.0.2/openssl-1.0.2m.tar.gz

openssl-1.0.2m.tar.gz文件解压到openssl-1.0.2m目录。

 

2、下载并安装Perl

ActivePerl工具

官网下载链接:http://www.activestate.com/activeperl/downloads

ActivePerl-5.26.msi

安装时,需要关闭360安全卫士,否则会报病毒。

 

3、下载并配置nasm

官网:www.nasm.us

使用版本:2.14rc15

下载地址:https://www.nasm.us/pub/nasm/releasebuilds/2.14rc15/win64/nasm-2.14rc15-win64.zip

解压缩nasm-2.14rc15-win64.zip,目录nasm-2.14rc15。比如D:\nasm-2.14rc15

将nasm解压缩后的目录添加到系统环境变量Path中。要重启系统,确保环境变量生效。

 

二、编译32位版本

1、打开命令行工具

如果使用VS2017编译32位版本,打开【VS 2017的 x64_x86 交叉工具命令提示符】。

如果使用VS2013编译32位版本,打开【VS2013 x86 本机工具命令提示】。

 

2、配置

进入到源码目录openssl-1.0.2m,执行如下命令:

perl Configure VC-WIN32

perl Configure VC-WIN32 no-asm --prefix=" E:\openssl-1.0.2m_build"

//--prefix 是后面编译成功后库安装目录

我使用的是第一个命令。

 

3、生成脚本

ms\do_nasm.bat

ms\do_ms.bat

我使用的是第一个命令。

 

4、编译

编译动态库:nmake -f ms\ntdll.mak

编译静态库:nmake -f ms\nt.mak

 

5、测试

nmake -f ms\ntdll.mak test

 

6、安装

nmake -f ms\ntdll.mak install

如果前面未配置安装目录,不安装也可以。

编译结果头文件在inc32目录,执行exe和dll在out32dll目录。

 

三、编译64位版本

1、打开命令行工具

如果使用VS2017编译64位版本,打开【适用于 VS 2017 的 x64 本机工具命令提示】。

如果使用VS2013编译64位版本,打开【VS2013 x64 本机工具命令提示】。

 

2、配置

进入到源码目录openssl-1.0.2m,执行如下命令:

perl Configure VC-WIN64A

perl Configure VC-WIN64A --prefix=" E:\openssl-1.0.2m_build"

//--prefix 是后面编译成功后库安装目录

我使用的是第一个命令。

 

3、生成脚本

ms\do_win64a.bat

 

4、编译

编译动态库:nmake -f ms\ntdll.mak

编译静态库:nmake -f ms\nt.mak

 

5、测试

nmake -f ms\ntdll.mak test

 

6、安装

nmake -f ms\ntdll.mak install

如果前面未配置安装目录,不安装也可以。

编译结果头文件在inc32目录,执行exe和dll在out32dll目录。

 

四、确认编译dll32位还是64

查询命令:dumpbin /headers libeay32.dll。

在查询结果FILE HEADER VALUES中有machine(x86)字样,表示dll是32位。

在查询结果FILE HEADER VALUES中有machine(x64)字样,表示dll是64位。

 

五、注意事项

1、编译32位版本和编译64位版本要分开编译。

不要在同一个目录,同时编译两个版本。

比如解压缩openssl-1.0.2m.tar.gz到openssl-1.0.2m后,先编译32位版本,并将编译结果保存好。

删除openssl-1.0.2m目录。

重新解压缩openssl-1.0.2m.tar.gz到openssl-1.0.2m后,在编译64为版本,并将编译结果保存好。

 

2、32位版本和64位版本,头文件内容不一样。

只有这一个头文件内容不一样:opensslconf.h

 

六、整理编译结果

openssl-1.0.2m_build

├─x64(64位版本目录)

│  ├─bin

│  │      libeay32.dll

│  │      ssleay32.dll

│  ├─lib

│  │      libeay32.lib

│  │      ssleay32.lib

│  └─openssl(inc32的openssl目录下的内容,64位版本)

│          *.h

│          *.c

└─x86(32位版本目录)

    ├─bin

    │      libeay32.dll

    │      ssleay32.dll

    ├─lib

    │      libeay32.lib

    │      ssleay32.lib

    └─openssl(inc32的openssl目录下的内容,32位版本)

            *.h

            *.c

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值