OpenSSL是一個廣泛使用的安全套接字層密碼庫,這裏講解一下如何編譯OpenSSL生成動態庫。
編譯所需的文件壓縮包下載鏈接如下。
下載地址
下載完所需編譯的壓縮包後解壓可以看到如下兩個文件
1 安裝ActivePerl和dmake
解壓Perl_dmake,可以看到一個安裝文件,運行這個exe程序
安裝成功後接下來安裝dmake,以管理員權限進入vs2015開發人員命令提示符
輸入命令:ppm install dmake
dmake安裝完成後如下圖所示:
2 編譯OpenSSL的32位動態庫
解壓openssl-OpenSSL_1_1_0f.zip,然後還是以管理權限進入vs2015開發人員命令提示符
使用cd 命令進入OpenSSL解壓後的目錄
cd C:\md5\openssl-OpenSSL_1_1_0f
配置如何編譯OpenSSL,這一步非常重要,可以自己配置編譯的庫爲動態庫還是靜態庫,32位的還是64位的。
perl Configure VC-WIN32 shared no-asm --prefix="C:/md5/openssl_win32_release" --openssldir="C:/md5/openssl_win32_release/ssl"
下面解釋一下上面的命令prefix="C:/md5/openssl_win32_release"表示一會編譯生成的文件在這個目錄下編譯,這個目錄是自己新建的,用戶自己指定;openssldir="C:/md5/openssl_win32_release/ssl"表示編譯生成的OpenSSL存放目錄,當然這個目錄也是自己新建的,用戶都可以按照自己的想法指定存放目錄。
配置完成效果如下:
接下來輸入編譯指令:
nmake
測試編譯是否正確
nmake test
出現下圖表示測試通過
安裝編譯的openssl庫
nmake install
安裝完成,如下圖所示
清理安裝完成後的一些無用文件
nmake clean
打開動態庫的存放目錄,可以看到OpenSSL動態庫已經生成成功。
3 補充
要編譯成靜態庫
在配置的這一步命令加上no-shared如下
perl Configure VC-WIN32 shared no-asm no-shared --prefix="C:/md5/openssl_win32_release" --openssldir="C:/md5/openssl_win32_release/ssl"
編譯成win64版本,在系統版本里改成VC-WIN64A或者VC-WIN64I
perl Configure VC-WIN64A shared no-asm --prefix="C:/md5/openssl_win32_release" --openssldir="C:/md5/openssl_win32_release/ssl"
編譯成debug版本的,加上–debug
perl Configure VC-WIN32 shared no-asm --debug --prefix="C:/md5/openssl_win32_release" --openssldir="C:/md5/openssl_win32_release/ssl"
編譯成msvc模式爲MT的
找到C:\md5\openssl-OpenSSL_1_1_0f\configdata.pm文件,搜索/MD將其修改爲/MT
找到C:\md5\openssl-OpenSSL_1_1_0f\makefile,搜索/MD將其修改爲/MT