windows下编译用于VS2017的openssl-1.0.2r

目录

首先:准备工作。

其次,编译。

1、解压OpenSSL

2、打开vs2017命令行工具

3、cd进入解压根目录,如我的解压根目录:D:\WorkSDK\openssl-1.0.2r

4、配置config脚本

a、编译release32位:

b、编译release64位:

 c、编译debug32位:

d、编译debug64位:

5、创建makefile文件

a、创建32位makefile文件:

b、创建64位makefile文件:

6、执行编译命令

(1)、编译动态库:

(2)、编译静态库:

(3)、查看库是否有问题:

(4)、将我们需要的头文件及lib文件拷贝至我们设置的目录:


   说句无聊的,真是好记性不如烂笔头,一年前曾经因为项目要从vs2010升级到2015,已经编译过一次,但这次升级vs2017,再次编译已经完全忘了步骤。

编译结果下载地址:https://download.csdn.net/download/y601500359/11192634

首先:准备工作。

1. 主编译工具:Visual Studio 2017

2. Active Perl , 下载地址 : https://www.activestate.com/activeperl/downloads 

3. OpenSSL , 下载地址:https://www.openssl.org/source/ 

这里就不细说了。

其次,编译。

1、解压OpenSSL

2、打开vs2017命令行工具

 

3、cd进入解压根目录,如我的解压根目录:D:\WorkSDK\openssl-1.0.2r

cd D:\WorkSDK\openssl-1.0.2r

4、配置config脚本

a、编译release32位:

perl Configure VC-WIN32

b、编译release64位:

perl Configure VC-WIN64A

 c、编译debug32位:

perl Configure debug-VC-WIN32

d、编译debug64位:

perl Configure debug-VC-WIN64A

我的例子是编译release32位:

备注:相关参数后面会详细说。

5、创建makefile文件

a、创建32位makefile文件:

ms\do_ms.bat

b、创建64位makefile文件:

ms\do_win64a.ba

6、执行编译命令

(1)、编译动态库:

//编译dll
nmake -f ms\ntdll.mak

//测试dll
nmake -f ms\ntdll.mak test

//将dll拷贝至我们设置的目录,默认目录是\usr\local\ssl,比如,我是源文件项目在D盘,那么我的默认目录
//D:\usr\local\ssl
nmake -f ms\ntdll.mak install

(2)、编译静态库:

//编译lib
nmake -f ms\nt.mak 

//测试lib
nmake -f ms\nt.mak test

//将lib拷贝至我们设置的目录,默认目录是\usr\local\ssl,比如,我是源文件项目在D盘,那么我的默认目录
//D:\usr\local\ssl
nmake -f ms\nt.mak install

​

动态库能够顺利变过,这里说说编译静态库会遇到的问题:

问题一、

 如果出现下图错误,那么在我们第四步,配置config脚本命令修改如下:注:release,及其他如64位,同理。

perl Configure VC-WIN32 no-asm 

 然后重复做一下接下来的步骤。

然而又会出现以下错误:

解决办法:清理工程,重新编译

nmake -f ms\nt.mak clean

make -f ms\nt.mak

编译成功: 

 生成目录:D:\WorkSDK\openssl-1.0.2r\out32

(3)、查看库是否有问题:

nmake -f ms\nt.mak test 

 

(4)、将我们需要的头文件及lib文件拷贝至我们设置的目录:

nmake -f ms\nt.mak install 

由于我们没有设置目录,所以默认/usr/local/ssl/lib/。

那么怎么设置我们自定义目录呢,在设置config配置脚本时,加上如下命令:

perl Configure VC-WIN32 --prefix=D:/WorkSDK/openssl-1.0.2r/lib

 至此编译结束,而为什么,本文不一步到位的原因是因为我个人在编译过程中出现这些问题,可能部分人也会遇到,做一个提示作用。

总结,以编译静态release 32位为例:整体编译步骤:

perl Configure VC-WIN32 no-asm --prefix="D:\WorkSDK\openssl-1.0.2r\build-vc17-win32-lib"
ms\do_ms.bat
nmake -f ms\nt.mak
nmake -f ms\nt.mak test
nmake -f ms\nt.mak install
nmake -f ms\nt.mak clean

posted @ 2019-04-25 17:37  SunkingYang  阅读(2521)  评论(0编辑  收藏  举报