1. 程式人生 > >Windows 下編譯 OpenSSL

Windows 下編譯 OpenSSL

參考目錄參考文獻

簡述

OpenSSL 是一個開源的第三方庫,它實現了 SSL(Secure SocketLayer)和 TLS(Transport Layer Security)協議,被廣泛企業應用所採用。對於一般的開發人員而言,在 Win32 OpenSSL 上下載已經編譯好的 OpenSSL 庫是省力省事的好辦法。對於高階的開發使用者,可能需要適當的修改或者裁剪 OpenSSL,那麼編譯它就成為了一個關鍵問題。

下面,主要講述如何在 Windows 上編譯 OpenSSL 庫。

|

環境準備

  1. 下載並安裝 Visual Studio(以 VS 2015 為例)。

  2. 完成上述所有步驟,將 OpenSSL 包解壓至 E:\openssl-1.0.2m

    ,便可以進行編譯了。

    注意: 解壓後的目錄中有兩個檔案 - INSTALL.W32、INSTALL.W64,包含了 OpenSSL 的各個編譯步驟。

編譯步驟

  1. 開啟命令提示符,定位至 E:\openssl-1.0.2m

    這裡寫圖片描述

  2. 輸入 perl Configure VC-WIN32 --prefix=E:\OpenSSL(將其安裝到 E:\OpenSSL):

    這裡寫圖片描述

  3. 輸入 ms\do_nasm

    這裡寫圖片描述

  4. 將命令提示符定位至 D:\Program Files\Microsoft Visual Studio 14.0\VC\bin, 然後輸入vcvars32.bat

    這裡寫圖片描述

    如果沒有這一步,會提示 nmake 不是內部或外部命令等一系列錯誤。

  5. 再次將命令提示符定位至 E:\openssl-1.0.2m

    ,然後輸入 nmake -f ms\ntdll.mak

    這裡寫圖片描述

    完成之後,會在 openssl-1.0.2m 目錄下生成一個名為 out32dll 的資料夾,裡面包含了一些動態庫和 exe 檔案:

    這裡寫圖片描述

  6. 輸入 nmake -f ms\ntdll.mak test,若最終顯示 passed all tests 則說明生成的庫正確:

    這裡寫圖片描述

  7. 輸入 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:\OpenSSLms\do_ms 替換。
  • E:\openssl-1.0.2m\tmp32dll 資料夾下包含相應的彙編檔案。
提醒一下,有時候會報錯,不知道是否是安裝了per64位和32的原因,需要在path環境變數裡面修改所用的per順序!