0

尝试为我正在处理的项目链接 OpenSSL 库时,我得到了 LNK 2019。我编译了 OpenSSL 库并运行了测试,它们都通过了。我玩过 openssl.exe 并让它正确创建和 MD5 哈希。但是,当我尝试使用 API 提供的功能时,它就是无法识别它们。我什至在 .lib 文件上使用了 dumpbin -headers 以确保我使用的那些包含我正在使用的函数的正确引用。

我确保包含正确的文件和路径(我还包含了此处未显示的标题)。

在此处输入图像描述

这是实际的文件及其路径

在此处输入图像描述

这是实际的错误。

在此处输入图像描述

错误 LNK2019:未解析的外部符号 _EVP_MD_CTX_create 在函数 _main 中引用 错误 LNK2019:未解析的外部符号 _EVP_DigestInit_ex 在函数中引用

我该如何解决?我是把文件放在正确的地方还是忘记了包含?我已经花了几天时间试图解决这个问题,这是我最后的手段:/

我正在使用 Microsoft Visual Studio 2012

4

2 回答 2

0

这可能是调用约定的问题。

请检查有关调用约定的项目设置。

OpenSSL 使用 /Gd 选项编译,这意味着函数将采用 __cdecl 调用约定。

您可以将调用约定更改为 /Gd 或为您使用 __cdecl 的 OpenSSL 函数签名添加前缀。

我相信这可能会有所帮助。此链接说明如何更改调用约定。

请确认这是否可以帮助您。

于 2013-09-09T04:23:16.623 回答
0

当我应该使用 x64 构建时,我正在构建 x86。由于 x64 选项没有出现在菜单中,我认为它对我不可用。我意识到我必须在项目属性下添加它,现在一切正常。

感谢所有的帮助。

于 2013-09-09T13:52:09.253 回答