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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM