未解析的外部Symbol OpenSSL库C ++

时间:2015-07-27 06:54:59

标签: c++ visual-c++ openssl

我试图用Visual Studio 2013 C ++编译我的程序,

在编译之前我没有错误。

error LNK2001: unresolved external symbol _EVP_DecryptUpdate
error LNK2001: unresolved external symbol _EVP_DecryptInit
error LNK2001: unresolved external symbol _EVP_DecryptFinal
error LNK2001: unresolved external symbol _EVP_CIPHER_CTX_new
error LNK2001: unresolved external symbol _EVP_CIPHER_CTX_init
error LNK2001: unresolved external symbol _EVP_CIPHER_CTX_free
error LNK2001: unresolved external symbol _EVP_CIPHER_CTX_cleanup
error LNK2001: unresolved external symbol _EVP_aes_128_cbc

我正在使用股票OpenSSL库。我已成功将它们链接到openssl文件夹。

如何解决此问题?

1 个答案:

答案 0 :(得分:7)

取自:using OpenSSL in Visual Studio 2012

<强>更新

这个问题也帮助我找到了解决方案。使用Visual Studio 2010和OpenSSL提升SSL

将openSSL lib与VS2012一起使用所需的步骤:

  • 下载并安装一个版本(我有64位操作系统,但我安装了 来自http://slproweb.com/products/Win32OpenSSL.html的32位openssl。
  • VS中的新项目,然后是配置 属性/ C / C ++ /一般/附加包含目录:openssl 包含文件夹(C:\ OpenSSL-Win32 \ include)
  • 链接器/常规/附加库指令:C:\ OpenSSL-Win32 \ lib
  • 链接器/输入/附加依赖项:
  • libeay32.lib libeay32MTd.lib libeay32MT.lib libeay32MDd.lib libeay32MD.lib ssleay32.lib ssleay32MTd.lib ssleay32MT.lib ssleay32MDd.lib ssleay32MD.lib

(有人写道,我只需要添加一个与C / C ++ /代码生成/运行时库匹配的那个,但这样就可以了。)

将theese文件复制到当前的VS文件夹/ VC / lib

这是对我有帮助的