openssl 1.1.1 windows環境下編譯
專案需要用到RSA加解密,MD5等,專案用的C++環境,VS2005。通過幾天的摸索,網上學習,終於將openssl編譯完成並使用到專案中。總結下過程:
環境:XP,VS2005,C++。
程式碼:openssl 1.1.1.
工具:ActivePerl,nasm彙編器。
1.開啟Visual Studio 2005 Command Prompt命令列工具。
2.定位到openssl的程式碼根目錄。
3.perl Configure VC-WIN32 [no-shared] [no-asm] [no-tests] [--debug] -D_WIN32_WINNT=0x0501 --prefix=d:\openssllib
VC-WIN32:可根據需要修改為64位等。
-D_WIN32_WINNT=0x0501為XP系統下需要,其他系統沒測試,可能其他高版本系統不需要此項。
[]中的為可選項,no-shared為編譯靜態庫,不加此項預設編譯出的是動態庫;no-tests為不需要tests功能,如果只需要openssl的庫可以加上此項,否則可能會出很多錯誤導致編譯不過;--debug為編譯debug版,不加此項預設編譯出的是release版。
4.nmake,編譯通過後再nmake install就安裝到--prefix=指定的目錄了。
5.如果要編譯多個版本(release,debug),最好先nmake clean下,再重複第3步驟。
tips:
1.VS工程的執行時庫(Runtime Library)選擇應與編譯出的openssl庫匹配,尤其動態庫,否則可能編譯不過。靜態庫可能例外,本人只驗證了一種,可行。
2.需要使用靜態庫的時候,如果編譯不過,出現LNK2019等錯誤的時候,你可能還需要新增ws2_32.lib,crypt32.lib庫。