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
vs2019编译openssl静态库_第1张图片
之后再把刚才生成的lib库文件放到项目根目录下,然后就可以声明并使用lib库中的函数了

#include 
#pragma comment(lib, "libeay32static_vs2019.lib")

需要注意的是,由于编译lib是选择了no-shared静态编译,所以我们的vs项目属性,也需要改成静态的
vs2019编译openssl静态库_第2张图片

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

你可能感兴趣的:(c\c++)