如何在Windows下編譯OpenSSL。
yanqing-wang (Intel) 於 星期日, 22/12/2013 - 23:48 提交
OpenSSL是一個開源的第三方庫,它實現了SSL(Secure SocketLayer)和TLS(Transport Layer Security)協議,被廣泛公司專屬應用程式所採用。對於一般的開發人員而言,在http://slproweb.com/products/Win32OpenSSL.html 上下載已經編譯好的OpenSSL庫是省力省事的好辦法。對於進階的開發使用者,他們可能需要適當的修改或者裁剪OpenSSL,那麼編譯它就成為了一個關鍵問題。本篇部落格就是主要講述如何早Windows上編譯OpenSSL庫。
筆者按照一定的步驟成功了編譯了OpenSSL庫,步驟如下:
1)在微軟網站下載並安裝VS Studio,筆者寫部落格之時的最新版本是2013,串連如下:http://msdn.microsoft.com/subscriptions/downloads/#searchTerm=&ProductFamilyId=529&Languages=en&PageSize=10&PageIndex=0&FileId=0 。
2)從http://www.activestate.com/activeperl/downloads 下載並安裝ActivePerl。
3)從http://www.nasm.us/ 下載並安裝Nasm彙編器。
4)從http://www.openssl.org/下載並安裝OpenSSL的最新Release包。筆者寫部落格之時,最新的OpenSSL包是:4459777 Feb 11 16:34:23 2013 openssl-1.0.1e.tar.gz (MD5) (SHA1) (PGP sign) [LATEST]
這裡需要強調的是,讀者未必需要完全按照筆者的步驟編譯OpenSSL庫,這裡的部分次序是可以互換的。
在完成所有上述5步後,我們就可以解壓縮OpenSSL包,在對它進行修改便可以編譯了。在解壓縮後,所有的原始碼放在openssl-1.0.1e目錄下,在此目錄下,有兩個檔案INSTALL.W32, INSTALL.W64需要被關注。開啟其中的任何一個檔案,你會看到如何編譯OpenSSL的各個步驟。這裡,筆者將會再囉嗦一下。
1)開啟VS Studio命令列工具,如圖1所示。若編譯64位OpenSSL庫,請開啟Visual Studio x64 Win64 Command Prompt,反之亦然。
圖1
2)配置編譯檔案及安裝目錄;
編譯Win32:perl Configure VC-WIN32 --prefix=c:\some\openssl\dir
編譯Win64:perl Configure VC-WIN64A
“c:\some\openssl\dir”目錄可以改成任何你希望的安裝目錄
3)搭建編譯環境:
ms\do_nasm
ms\do_ms
對於64位編譯,將ms\do_ms替換成ms\do_win64a
4)編譯OpenSSL
nmake -f ms\ntdll.mak
5)安裝編譯產生的庫到“c:\some\openssl\dir”
nmake -f ms\ntdll.mak install
執行後搞定了嗎。若沒有,是不是遺忘的中間的某個步驟。
【思考題】
1)在Win64編譯中,有VC-WIN64I配置選項,它表示什麼。
2)如果不想使用彙編代碼,那麼應該如何處理呢。