2012-07-08 189 views
24

我试图将编写在C中的控制台应用程序移植到Visual Studio 2010.在Linux/Mac上,应用程序运行完美,包括OpenSSL支持。如何在Visual Studio中使用OpenSSL

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

谢谢!

+3

您是否安装了Win32 OpenSSL?如果没有,请到这里:http://slproweb.com/products/Win32OpenSSL.html – 2012-07-08 14:52:02

+0

它携带的许可证是什么?我不确定它是否可以包含在商业产品中......任何想法都可以帮助 – mSO 2012-07-09 02:17:04

+1

你有OpenSSL的Windows lib吗?当您尝试与OpenSSL Libs链接时,您正面临什么问题? – Jay 2012-07-09 11:43:32

回答

3

那么,这已经超过了一年,但我找不到答案,所以我肌肉发达。我的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配置属性 - >链接器 - >附加库目录和OpenSSL-1.0 .1e \ inc32到配置属性 - > C/C++ - > C/C++ - >常规 - >其他包含目录,将libeay32.dll复制到我的路径中的某处,并称它为好。似乎工作。

+1

这是“从源代码构建openssl”的方法,如果你只想对它进行编译,获取二进制文件就容易得多。 – 2015-07-30 18:49:12

23

我知道这是旧的!我自己面临这个问题,这里是解决方案。

首先,你应该安装(普通的普通安装)openssl。 (从here)。

现在,您可以创建一个项目后,我引用:

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

[C/C++ - >常规 - >附加包含目录值: OpenSSL的包括在你的机器的目录(如C:\ OpenSSL的\包括)

[链接器 - >常规 - >附加库目录值:在你的机器OpenSSL的 lib目录(如C:\ o penssl \ lib)

[Linker - > Input - > Additional Dependencies] value:libeay32。lib

Source

+0

嗨,小丑你可以请解释安装过程。该链接没有任何exe文件可以运行。我从github克隆,但现在卡住了。 – Noitidart 2016-12-28 04:26:58

+1

@Noitidart,你在使用什么操作系统? – joker 2016-12-29 17:50:41

+0

非常感谢@joker的回复。我一直在努力挣扎。我在Win10上,我创建了这个主题,解释我做了什么,并寻求帮助 - http://stackoverflow.com/q/41357374/1828637 – Noitidart 2016-12-29 19:22:21

2

添加openssl相关的头文件和下面的头文件。

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

打开下面链接下载&预编译的文件。

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

extarct并保持文件夹中的C盘 使用readme_precompile.txt的说明。

打开Visual C++项目和后续步骤,以包含和链接器选项。

确保以下设置是安装在项目属性页: [C/C++ - >常规 - >附加包含目录] 值:OpenSSL的包括在你的机器的目录(如C:\ OpenSSL的\包括)或(例如C:\ openssl \ include64) [链接器 - >常规 - >其他库目录] value:OpenSSL的lib目录(例如C:\ openssl \ lib)或(例如C:\ openssl \ lib64) [链接器 - >输入 - >附加依赖项] value:

 ws2_32.lib 
     libsslMT.lib 
     Crypt32.lib 
     libcryptoMT.lib