我阅读了很多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
  • 我在“属性”->“链接器”->“输入”->“其他依赖项(路径中没有空格)”中为lib文件添加了完整路径
  • 我用extern“C”包裹了我的代码
  • 我尝试使用管理员特权
  • 运行VS

    仍然有同样的错误。有任何想法吗?

    更新:
    要让_wc_InitSha3_256()定义符号WOLFSSL_SHA3是必需的

    我的链接配置:
    c&#43;&#43; - LNK2019无法在Visual Studio中链接静态库-LMLPHP

    最佳答案

    @Stephan,

    我看到您找到了正确的答案。对于其他阅读此内容的人来说,有关未解析的外部符号wc_InitSha3_256的此问题的解决方案是将预处理器标志WOLFSSL_SHA3添加到您的设置中。可以在PreProcessor下的Visual Studio项目设置中完成此操作,也可以通过添加wolfssl-root/IDE/WIN/user_settings.h并重新构建Visual Studio项目来更新#define WOLFSSL_SHA3中的设置。有关使用wolfSSL Windows解决方案的其他文档,请访问wolfSSL网站的“文档”选项卡下,并在“技术文档”部分下查找名为“带有Visual Studio的wolfSSL”的文档。以下提供的链接:

    https://www.wolfssl.com/docs/visual-studio/

    对于与wolfSSL产品有关的任何将来的问题,如果您在问题中添加标志“wolfssl”,我们的工程师会定期检查堆栈溢出以查找新问题,并乐意发布答案!如果您的问题仍未得到解答,您也可以随时通过Wolfssl [dot] com的支持直接与我们联系。只需向我们发送指向堆栈溢出问题的链接,我们非常乐于研究!

    07-24 12:42