如何在Windows下編譯OpenSSL

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彙編器。

注:不下載時,可以使用命令perl.exe Configure VC-WIN64A no-asm --prefix=C:\openssl\prefix

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)如果不想使用匯編代碼,那麼應該如何處理呢?

 

發佈了53 篇原創文章 · 獲贊 5 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章