【问题标题】:using OpenSSL in Visual Studio 2012在 Visual Studio 2012 中使用 OpenSSL
【发布时间】:2013-06-12 05:51:50
【问题描述】:

我已经从http://www.openssl.org/source/下载了最新版本的Openssl

我想在 Visual Studio 2012 中使用它,尤其是获取文件的 md5/sha-1 哈希,但我无法使用 openssl 库包含/设置环境。老实说,我很困惑要包括什么,在哪里,但是我已经阅读了自述文件。

我收到了这个错误。

Error   1   error LNK2019: unresolved external symbol _MD5_Init referenced in function _main

所以我的问题是,我已经下载了最新版本(openssl-1.0.1e.tar.gz),我应该在 VS2012 中配置什么才能使用该库?谢谢!

更新

这个问题也帮助我找到了解决方案。 Boost SSL with Visual Studio 2010 and OpenSSL

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

  • http://slproweb.com/products/Win32OpenSSL.html 下载并安装一个版本(我有 64 位操作系统,但我安装了 32 位 openssl)。
  • VS中新建项目,然后是Configuration Properties/C/C++/General/Additional Include Directories: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

【问题讨论】:

  • “将这些文件复制到当前的VS文件夹/VC/lib”是什么意思?

标签: c++ visual-studio-2012 openssl md5 sha


【解决方案1】:

您使用什么编译器来编译 OpenSSL?你用过MinGW吗?如果是这样,请确保不要剥离它们(或仅使用 --strip-unneeded),否则将剥离导入符号。头文件和库版本匹配吗?

也许您想尝试来自:http://slproweb.com/products/Win32OpenSSL.html 的预构建的,这些肯定有效。

【讨论】:

  • 我认为预建的是一个不错的选择,现在我已经下载(Win64 OpenSSL v1.0.1e,我有64bit W7),安装它。在 OpenSSL-Win64 目录中有 include,在 lib 中有 .libs。我现在该怎么办?我应该将它们复制到 VS 目录中,或者我应该在 VS 中配置什么?
  • 我将 C/C++/General/Additional Include Dirs 设置为 OpenSSL-Win64/include、OpenSSL-Win64/lib,并将依赖项设置为 libeay32.lib、ssleay32.lib。我有同样的问题
  • 这是正确的做法。你确定你已经包含了 VC 目录吗?例如 C:\OpenSSL-WinXX\lib\VC 或 C:\OpenSSL-WinXX\lib\VC\static 用于静态库。然后链接到 MT 库以进行发布和 MTd 进行调试构建。 (libeay32MT.lib, ...)
  • 还要确保您的平台匹配,VC 默认构建 32 位二进制文​​件。
  • 我用解决方案更新了我的问题。感谢您的想法,下载预构建的 openssl,这帮助我找到了方法。 :)
猜你喜欢
  • 1970-01-01
  • 2014-11-20
  • 2023-03-29
  • 2012-09-05
  • 1970-01-01
  • 1970-01-01
  • 2012-09-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多