vs2019編譯openssl靜態庫

最近寫個小工具需要依賴openssl的靜態lib庫,本來是有其它同事編譯好的x32和x64版本的lib庫,可惜他編譯的lib庫是用vs2008環境編譯的。

我這個新項目使用vs2019開發,所以不能直接引用現有的lib庫,只能重新使用vs2019的編譯環境再編譯一個新的openssl靜態庫。

首先需要到openssl官網,或者github release頁面去下載最新的源碼

1)下載openssl源碼:

  • https://github.com/openssl/openssl/releases
  • https://www.openssl.org/source/

下載完後,解壓到e:\\openssl目錄

2)下載Windows版本的Active Perl環境:

  • https://www.activestate.com/products/perl/downloads/

Perl下載完,安裝即可

3)打開VS2019自帶的開發者命令行工具,一般安裝完vs2019,在開始菜單中可以找到
《Developer Command Prompt for VS 2019》這個工具,打開即可!

在剛纔打開的工具中切換到剛纔e:\\openssl目錄下,然後開始執行以下3條命令進行編譯:
如果只想編譯出靜態庫libcrypto.lib,libssl.lib,則加入命令參數no-shared

perl Configure VC-WIN32 no-asm no-shared
ms\do_ms
nmake -f ms\ntdll.mak

具體命令用法,也可以參考openssl源碼目錄下的INSTALL.W32文件

一些常用參數:
--debug 編譯debug版本
VC_WIN32 編譯32平臺
VC_WIN64A 編譯64 arm版
VC_WIN64I 編譯64 IA-64版

4)編譯完成後,使用lib文件

首先需要在項目屬性中,添加openssl的頭文件目錄openssl-1.0.2t\inc32
在這裏插入圖片描述
之後再把剛纔生成的lib庫文件放到項目根目錄下,然後就可以聲明並使用lib庫中的函數了

#include <openssl/rsa.h>
#pragma comment(lib, "libeay32static_vs2019.lib")

需要注意的是,由於編譯lib是選擇了no-shared靜態編譯,所以我們的vs項目屬性,也需要改成靜態的
在這裏插入圖片描述

參考: https://blog.csdn.net/ljttianqin/article/details/72978612

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