目录
3、cd进入解压根目录,如我的解压根目录:D:\WorkSDK\openssl-1.0.2r
(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