[Windows] Windows平臺下編譯OpenSSL

準備工作:

1.Perl

建議使用5.30以上版本,本人在使用時發現28的版本好像在配置openssl的時候有問題。

下載路徑:http://strawberryperl.com/

ps:ActivePerl 和 Strawberry Perl 都可以

2.nasm

如果不適用彙編庫,則可以不下載

https://www.nasm.us/pub/nasm/stable/

3.VS 編譯環境

主要爲了使用nmake


 

配置及編譯:

1.打開包含開發環境的命令行:

2.確保Perl可用,nasm可用

3.切換到源碼目錄下,運行下述命令:

Perl Configure no-asm VC-WIN32

如果是編譯64位,則:

Perl Configure no-asm VC-WIN64A

之後會提示已經配置完畢。

4.開始編譯:

執行如下命令:

nmake

此時可以在源碼同級目錄下獲得如下文件:

openssl的輸出有三個部分:

1)命令行 :openssl.exe

2)加密庫:(動態庫)libcrypto.lib 和 libcrypto-1_1.dll

                    (靜態庫)libcrypto_static.lib

3)協議庫:(動態庫)libssl.lib 和 libssl-1_1.dll

                    (靜態庫)libssl_static.lib

 

5.運行測試用例:

執行如下命令:

nmake test


 

源碼目錄:

apps  ---  openssl.exe

ssl  ---  libssl.lib

crypto  ---  libcrypto.lib


 

PS:

建議每個架構版本(WIN32/WIN64)都配置一個獨立的源碼目錄,如果一次編譯出現問題,建議刪除原目錄,在重新創建目錄重新執行上述流程。

如果真的想在同一個源碼目錄下編譯輸出不同架構版本,則需要再Configure的時候指定 --prefix 路徑,同時在編譯了某個版本後,需要運行 nmake clean 清除之前生成的中間臨時文件後,再進行下一次 Configure 和 nmake。

這樣做比較麻煩也容易出現未知的錯誤。