看了很多LNK2019的相关问题。但是我仍然对自己的情况感到困惑。如果我遗漏了一些明显的东西,我深表歉意。
我尝试使用 wolfssl 库。它是 C 库。这是我尝试在 VS 2017 中构建的 C++ 代码:
extern "C" {
#include <wolfssl/wolfcrypt/sha3.h>
int main() {
Sha3 sha3;
wc_InitSha3_256(&sha3, NULL, 0);
return 0;
}
}
我得到了 错误LNK2019未解析的外部符号_wc_InitSha3_256
我执行了后续步骤:
- 我从源代码重建了 wolfssl。
- 我确保 lib 包含 _wc_InitSha3_256
- 我在 Properties->Linker->Input->Additional dependencies 中添加了 lib 文件的完整路径(路径中没有空格)
- 我用 extern "C"结束了我的代码
- 我尝试以管理员权限运行 VS
仍然有同样的错误。有什么想法吗?
更新:
要让 _wc_InitSha3_256()
定义符号 WOLFSSL_SHA3
需要
最佳答案
@斯蒂芬,
我看到你找到了正确的答案。对于阅读本文的其他人,关于未解析的外部符号 wc_InitSha3_256
的问题的解决方案是将预处理器标志 WOLFSSL_SHA3
添加到您的设置中。这可以在预处理器下的 Visual Studio 项目设置中完成,也可以通过添加 #define WOLFSSL_SHA3
更新 wolfssl-root/IDE/WIN/user_settings.h
中的设置并重建 Visual Studio 项目。有关使用 wolfSSL windows 解决方案的其他文档,请参阅“文档”选项卡下的 wolfSSL 网站,并在“技术文档”部分下查找名为“wolfSSL with Visual Studio”的文档。链接如下:
https://www.wolfssl.com/docs/visual-studio/
对于与 wolfSSL 产品有关的任何 future 问题,如果您将标志“wolfssl”添加到您的问题,我们确实有工程师会定期检查堆栈溢出是否有新问题,并且很乐意发布答案!如果您的问题没有得到解答,您也可以随时通过 support [at] wolfssl [dot] com 直接联系我们。只需向我们发送堆栈溢出问题的链接,我们非常乐意调查!
关于c++ - LNK2019在visual studio中无法链接静态库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50803878/