Visual studio 如何在VS2019中静态链接OpenSSL库?

Visual studio 如何在VS2019中静态链接OpenSSL库?,visual-studio,visual-c++,static,openssl,Visual Studio,Visual C++,Static,Openssl,我想在VC++项目中使用。但是我不能静态链接这些库。让我先谈谈我是怎么做到的 1,下载并解压缩到“d:\openssl\sources\openssl-1.1.1h” 2、在中构建OpenSSL 成功构建后,我在“d:\openssl\builds\openssl-1.1.1h-VC-WIN32”中找到了4个目录 “d:\openssl\builds\openssl-1.1.1h-VC-WIN32\lib”中有两个库 3、在VS2019中创建一个空的VC++项目 4、添加Progra

我想在VC++项目中使用。但是我不能静态链接这些库。让我先谈谈我是怎么做到的

1,下载并解压缩到“d:\openssl\sources\openssl-1.1.1h”

2、在中构建OpenSSL

成功构建后,我在“d:\openssl\builds\openssl-1.1.1h-VC-WIN32”中找到了4个目录

“d:\openssl\builds\openssl-1.1.1h-VC-WIN32\lib”中有两个库

3、在VS2019中创建一个空的VC++项目

4、添加Program.cpp并在Program.cpp中添加代码

5、根据需要添加静态库

6、调试后我遇到了错误

为什么要查找“libssl-1_1.dll”?我静态链接了“libssl.lib”!我找不到原因,请帮帮我

如果将其配置为“无共享”,则会遇到“致命错误LNK1120:28未解析外部”

根据这个问题可以通过添加以下代码来解决

#pragma comment(lib, "crypt32")
#pragma comment(lib, "ws2_32.lib")
这个问题可以根据具体情况来解决


在默认版本中创建的.lib文件只是用来调用DLL的存根

在构建OpenSSL时,需要指定要为静态链接构建它

修改用于在末尾添加“无共享”的“配置”行,例如

perl Configure --prefix=d:\your\prefix\here VC-WIN32 no-shared
然后,您需要重建OpenSSL:

nmake clean
nmake
nmake test
nmake install