Windows 下編譯 OpenSSL
參考目錄參考文獻
簡述
OpenSSL 是一個開源的第三方庫,它實現了 SSL(Secure SocketLayer)和 TLS(Transport Layer Security)協議,被廣泛企業應用所採用。對於一般的開發人員而言,在 Win32 OpenSSL 上下載已經編譯好的 OpenSSL 庫是省力省事的好辦法。對於高階的開發使用者,可能需要適當的修改或者裁剪 OpenSSL,那麼編譯它就成為了一個關鍵問題。
下面,主要講述如何在 Windows 上編譯 OpenSSL 庫。
|
環境準備
下載並安裝 Visual Studio(以 VS 2015 為例)。
完成上述所有步驟,將 OpenSSL 包解壓至
E:\openssl-1.0.2m
注意: 解壓後的目錄中有兩個檔案 - INSTALL.W32、INSTALL.W64,包含了 OpenSSL 的各個編譯步驟。
編譯步驟
開啟命令提示符,定位至
E:\openssl-1.0.2m
:輸入
perl Configure VC-WIN32 --prefix=E:\OpenSSL
(將其安裝到E:\OpenSSL
):輸入
ms\do_nasm
:將命令提示符定位至
D:\Program Files\Microsoft Visual Studio 14.0\VC\bin
, 然後輸入vcvars32.bat
:如果沒有這一步,會提示 nmake 不是內部或外部命令等一系列錯誤。
再次將命令提示符定位至
E:\openssl-1.0.2m
nmake -f ms\ntdll.mak
:完成之後,會在
openssl-1.0.2m
目錄下生成一個名為 out32dll 的資料夾,裡面包含了一些動態庫和 exe 檔案:輸入
nmake -f ms\ntdll.mak test
,若最終顯示passed all tests
則說明生成的庫正確:輸入
nmake -f ms\ntdll.mak install
:完成之後,會在
E:\OpenSSL
目錄下生成 bin、include、lib、ssl 四個資料夾:
注意:
- 以上編譯的是 release 版本,若要編譯 debug 版,將上述第 2 步中的
VC-WIN32
改成debug-VC-WIN32
- 若要編譯靜態庫,則用
ms\nt.mak
替換掉上面用到的ms\ntdll.mak
即可。 - 若要生成不帶彙編支援的庫,則需將上述第 2、3 步用
perl Configure VC-WIN32 no-asm --prefix=E:\OpenSSL
和ms\do_ms
替換。 - 在
E:\openssl-1.0.2m\tmp32dll
資料夾下包含相應的彙編檔案。