欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

windows下编译用于VS2017的openssl

程序员文章站 2022-06-29 13:31:59
...

首先:准备工作。

其次,编译。

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

windows下编译用于VS2017的openssl

2、打开vs2017命令行工具

windows下编译用于VS2017的openssl

 

windows下编译用于VS2017的openssl

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

cd D:\WorkSDK\openssl-1.0.2r

windows下编译用于VS2017的openssl

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位:

windows下编译用于VS2017的openssl

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

5、创建makefile文件

a、创建32位makefile文件:

ms\do_ms.bat

b、创建64位makefile文件:

ms\do_win64a.ba

windows下编译用于VS2017的openssl

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

​

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

问题一、

windows下编译用于VS2017的openssl 如果出现下图错误,那么在我们第四步,配置config脚本命令修改如***:release,及其他如64位,同理。

perl Configure VC-WIN32 no-asm 

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

然而又会出现以下错误:

windows下编译用于VS2017的openssl

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

nmake -f ms\nt.mak clean

windows下编译用于VS2017的openssl

make -f ms\nt.mak

编译成功: 

windows下编译用于VS2017的openssl

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

windows下编译用于VS2017的openssl

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

nmake -f ms\nt.mak test 

 windows下编译用于VS2017的openssl

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

nmake -f ms\nt.mak install 

windows下编译用于VS2017的openssl

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

windows下编译用于VS2017的openssl

那么怎么设置我们自定义目录呢,在设置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

windows下编译用于VS2017的openssl

相关标签: c/c++