2012-07-08 43 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 
相關問題