目錄
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

