OpenSSL 是一個開源的第三方庫,它實現了 SSL(Secure SocketLayer)和 TLS(Transport Layer Security)協議,被普遍企業應用所採用。對於通常的開發人員而言,在 Win32 OpenSSL 上下載已經編譯好的 OpenSSL 庫是省力省事的好辦法。對於高級的開發用戶,可能須要適當的修改或者裁剪 OpenSSL,那麼編譯它就成爲了一個關鍵問題。html
下面,主要講述如何在 Windows 上編譯 OpenSSL 庫。web
下載並安裝 Visual Studio(以 VS 2015 爲例)。ui
下載並安裝 ActivePerl。
下載地址:http://www.activestate.com/activeperl/downloads
我下載的是:ActivePerl-5.26.0.2600-MSWin32-x64-403866.exespa
打開命令提示符,定位到 D:\Program Files\Perl\eg
目錄,執行 perl example.pl
,若提示 Hello from ActivePerl!
則說明 Perl 安裝成功:.net
下載並安裝 Nasm 彙編器,並將 D:\Program Files\NASM
添加到系統環境變量 Path 中。
下載地址:http://www.nasm.us/
我下載的是:nasm-2.13.01-installer-x64.exedebug
下載並安裝 OpenSSL
下載地址:http://www.openssl.org/
我下載的是:openssl-1.0.2m.tar.gzcode
完成上述全部步驟,將 OpenSSL 包解壓至 E:\openssl-1.0.2m
,即可以進行編譯了。htm
注意: 解壓後的目錄中有兩個文件 - INSTALL.W3二、INSTALL.W64,包含了 OpenSSL 的各個編譯步驟。blog
打開命令提示符,定位至 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 四個文件夾:
注意:
VC-WIN32
改爲 debug-VC-WIN32
便可。ms\nt.mak
替換掉上面用到的 ms\ntdll.mak
便可。perl Configure VC-WIN32 no-asm --prefix=E:\OpenSSL
和 ms\do_ms
替換。E:\openssl-1.0.2m\tmp32dll
文件夾下包含相應的彙編文件。