36

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

任何人都可以提供使用/链接OpenSSLVisual Studio 项目中的库的帮助吗?

谢谢!

4

4 回答 4

39

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

首先,你应该安装(正常普通安装)openssl。(它来自这里)。

现在,在您创建项目后,我引用:

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

[C/C++ -> General -> Additional Include Directories] 值:OpenSSL 在你机器上的包含目录(例如 C:\openssl\include)

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

[链接器 -> 输入 -> 附加依赖项] 值:libeay32.lib

来源

于 2015-07-09T15:39:07.997 回答
13

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

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

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

http://www.npcglib.org/~statthis/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
于 2016-10-25T09:08:05.700 回答
4

好吧,这已经一年多了,但我找不到答案,所以我勉强通过了。我让 openssl-1.0.1e 使用 VS 11 进行编译,如下所示:

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

取自Nitesh 提供的链接:

perl Configure VC-WIN64A no-asm

其次是:

ms\do_win64a

根据这篇文章,我编辑了 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++ -> 常规 -> 附加包含目录,将 libeay32.dll 复制到我的路径中的某个位置,并称之为好。似乎正在工作。

于 2013-10-15T19:12:26.393 回答
4

以下是一些资源:编译和安装 OpenSSL for Windows以及Using OpenSSL for Cryptography (Blowfish, DES, RC2, RC4)

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

于 2012-07-31T19:16:00.807 回答