【问题标题】:Unresolved external Symbol OpenSSL Libraries C++ [duplicate]未解析的外部符号 OpenSSL 库 C++ [重复]
【发布时间】:2015-07-27 06:54:58
【问题描述】:

我正在尝试使用 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 文件夹。

我该如何解决这个问题?

【问题讨论】:

  • 我不认为它是重复的。我只是需要一些帮助,因为我迷路了,我不知道该怎么办.. :l
  • 该问题有许多关于此类错误(缺少符号)的多个来源的详细答案。我认为我可以提供的帮助是解决所有问题 - 这很乏味,但这与您遇到的问题息息相关。
  • 您以前是否使用过 VS 2013 C++ 链接到外部库?换句话说,这是一些不寻常的问题,您知道自己在做什么,或者您只是在寻找某人来解释如何与 VS 2013 C++ 进行链接?
  • 文件是朋友给我的。他给了我指示,我也照做了,我不想损坏文件。但我会尝试并回复你。
  • 将链接器置于详细模式/VERBOSE:Lib 并检查搜索路径。您会注意到它缺少 openssl 库。

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


【解决方案1】:

取自:using OpenSSL in Visual Studio 2012

更新

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

在 VS2012 中使用 openSSL 库所需的步骤:

  • 下载并安装一个版本(我有64位操作系统,但是我安装了 32bit openssl) 来自http://slproweb.com/products/Win32OpenSSL.html
  • 在 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++/代码生成/运行时库匹配的那个,但它对我有用。)

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

这对我有帮助

【讨论】:

  • 我认为您可以正式接受自己的答案。
猜你喜欢
  • 1970-01-01
  • 2020-03-03
  • 2010-11-12
  • 2018-08-02
  • 1970-01-01
  • 2016-05-04
  • 2013-01-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多