【问题标题】:How to use OpenSSL with Visual Studio [closed]如何在 Visual Studio 中使用 OpenSSL [关闭]
【发布时间】:2012-07-08 04:41:52
【问题描述】:

我正在尝试将我用 C 编写的控制台应用程序移植到 Visual Studio 2010。在 Linux/Mac 上,该应用程序可以完美运行,包括对 OpenSSL 的支持。

谁能提供在 Visual Studio 项目中使用/链接 OpenSSL 库的帮助?

谢谢!

【问题讨论】:

标签: windows visual-studio-2010 linker openssl


【解决方案1】:

我知道它很旧!我自己也遇到了这个问题,这就是解决方案。

首先要安装(正常普通安装)openssl。 (来自here)。

现在,在你创建一个项目之后,我引用:

确保在项目属性中设置了以下设置 页数:

[C/C++ -> 常规 -> 附加包含目录] 值: 您机器中 OpenSSL 的包含目录(例如 C:\openssl\include)

[Linker -> General -> Additional Library Directories] 值:OpenSSL 的 您机器中的 lib 目录(例如 C:\openssl\lib)

[链接器 -> 输入 -> Additional Dependencies] 值:libeay32.lib

Source.

【讨论】:

  • 嗨小丑你能解释一下安装过程吗?该链接没有要运行的任何 exe。我从 github 克隆,但现在卡住了。
  • @Noitidart,你用的是什么操作系统?
  • 非常感谢@joker 的回复。我一直在努力奋斗。我在 Win10 上,我创建了这个主题来解释我做了什么并寻求帮助 - stackoverflow.com/q/41357374/1828637
  • 从这里安装一个:slproweb.com/products/Win32OpenSSL.html这个方法我用过。
  • 我不是很关心这部分。我认为(可能)如果您将项目编译为版本,这将省略用户端安装库的需要。意思是,如果我是正确的,当你编译项目时,用户不需要安装库。不过我不确定。
【解决方案2】:

添加 OpenSSL 相关的头文件,以及下面的头文件:

#include <winsock2.h>
#include <windows.h>

打开下方链接并下载预编译文件。

http://www.npcglib.org/~stathis/blog/precompiled-openssl/

解压文件夹到C盘 使用 readme_precompile.txt 获取说明。

打开下面给出的 Visual C++ 项目和后续过程以包含和链接器选项。

确保在项目属性页中设置了以下设置:

  • [C/C++ -> 常规 -> 附加包含目录]
    • OpenSSL 的包含目录在您的机器中(例如 C:\openssl\include)或(例如 C:\openssl\include64)
  • [链接器 -> 常规 -> 附加库目录]
    • 您机器中 OpenSSL 的 lib 目录(例如 C:\openssl\lib)或(例如 C:\openssl\lib64)
  • [链接器 -> 输入 -> 附加依赖项]
    • ws2_32.lib
    • libsslMT.lib
    • Crypt32.lib
    • libcryptoMT.lib

【讨论】:

【解决方案3】:

这里有一些资源:Compiling and installing OpenSSL for Windows,以及Using OpenSSL for Cryptography (Blowfish, DES, RC2, RC4)

我自己试过了,但我仍然遇到错误。 OpenSSL 和 Visual Studio 不是我的强项,但也许你能弄明白。

【讨论】:

    【解决方案4】:

    嗯,这已经一年多了,但我找不到答案,所以我勉强通过了。我得到了 openssl-1.0.1e 来使用 VS 11 进行编译:

    我尝试使用git自带的PERL,不行,必须安装ActivePerl

    取自 Nitesh 提供的link

    perl Configure VC-WIN64A no-asm
    

    接着是:

    ms\do_win64a
    

    根据this post,我编辑了 ms\ntdll.mak 并将 CC 更改为:

    CC="c:\Program Files (x86)\Microsoft visual Studio 11.0\VC\bin\amd64\cl.exe"
    

    最后:

    nmake -f ms\ntdll.mak
    

    我没有费心安装,只是将目录 openssl-1.0.1e\out32dll 添加到 Configuration Properties -> Linker -> Additional Library Directories 和 openssl-1.0.1e\inc32 到 Configuration Properties -> C/C++ -> C/C++ -> General -> Additional Include Directories,将 libeay32.dll 复制到我的路径中的某个位置,并称之为好。似乎工作正常。

    【讨论】:

    • 这是“从源代码构建 openssl”的方法,如果您只想针对它进行编译,那么获取二进制文件会容易得多。
    猜你喜欢
    • 2013-06-12
    • 2014-01-10
    • 2015-11-16
    • 2018-05-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-11
    • 2018-05-04
    相关资源
    最近更新 更多