在 Windows 上為 Visual Studio 建置 OpenSSL 看似簡單,實則坑多。本文記錄完整的 32/64 位元 Release/Debug 靜態庫建置流程,避免常見踩坑。
.tar.gz將原始碼解壓至兩個獨立目錄:
C:\openssl-src-32 — 32 位元建置C:\openssl-src-64 — 64 位元建置重要:不可在同一目錄建置不同平台,殘留檔案會導致污染。
1. 開啟 "Visual Studio 命令提示字元 (2010)"
2. cd C:\openssl-src-32
3. perl Configure VC-WIN32 --prefix=C:\Build-OpenSSL-VC-32
4. ms\do_ms
5. nmake -f ms\nt.mak
6. nmake -f ms\nt.mak install
輸出:C:\Build-OpenSSL-VC-32\lib\libeay32.lib, ssleay32.lib
1. 同樣開啟 VS2010 命令提示字元
2. cd C:\openssl-src-32
3. perl Configure debug-VC-WIN32 --prefix=C:\Build-OpenSSL-VC-32-dbg
4. ms\do_ms
5. 編輯 ms\nt.mak:將所有 /Zi 替換為 /Z7(共 3 處)
6. nmake -f ms\nt.mak
7. nmake -f ms\nt.mak install
8. 重命名:libeay32.lib → libeay32-debug.lib, ssleay32.lib → ssleay32-debug.lib
1. 開啟 "Visual Studio x64 命令提示字元"
2. cd C:\openssl-src-64
3. perl Configure VC-WIN64A --prefix=C:\Build-OpenSSL-VC-64
4. ms\do_win64a
5. nmake -f ms\nt.mak
6. nmake -f ms\nt.mak install
輸出同名 libeay32.lib, ssleay32.lib,**必須自行改名**(如 libeay64.lib)避免混淆。
1. 開啟 VS x64 命令提示字元
2. cd C:\openssl-src-64
3. perl Configure debug-VC-WIN64A --prefix=C:\Build-OpenSSL-VC-64-dbg
4. ms\do_win64a
5. 編輯 ms\nt.mak:除 ASM 開頭行外,其餘 /Zi 替換為 /Z7(共 2 處)
注意:MASM (ml64.exe) 不支援 /Z7,ASM 行保持原樣
6. nmake -f ms\nt.mak
7. nmake -f ms\nt.mak install
8. 重命名:libeay64-debug.lib, ssleay64-debug.lib