C++使用VS2015編譯OpenSSL生成dll動態庫

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
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章