c++ - 在 Visual Studio 2012 中使用 OpenSSL

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

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

我想在 Visual Studio 2012 中使用它,尤其是获取文件的 md5/sha-1 哈希,但我无法使用 openssl 库包含/设置环境。老实说,我对要包含的内容和位置感到困惑,但是我已经阅读了 README-s。

我遇到了这个错误。

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 include 文件夹 (C:\OpenSSL-Win32\include)
  • Linker/General/Additional Library 目录: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

最佳答案

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

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

关于c++ - 在 Visual Studio 2012 中使用 OpenSSL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17127824/

相关文章:

c++ - boost 是否具有用于数组 vector 的智能指针?

C++ 安全连接到数据库

c# - Visual Studio 2012 随机调试器启动失败 : Unable to start program

visual-studio-2012 - Visual Studio - TFS - 编辑构建定义错误 - 259 个字符

linux - bss_dgram.c(1041) : OpenSSL internal error, 断言失败:auth_data

sockets - 如何创建中间人工具

c++ - Objective-C 中调用方法与 C++ 有何不同?

c++ - Delphi 相当于 C++ 的 memset 是什么?

c# - 将 Sql Express 2012 设置为先决条件时出错

c++ - openssl:减少内存使用