1. 程式人生 > 實用技巧 >VS2013編譯libcurl(支援https)

VS2013編譯libcurl(支援https)

之前小編介紹過通過Visual Studio Tools編譯libcurl的方法(:https://blog.csdn.net/lt4959/article/details/96475906),最近專案中需要使用到https通訊,發現之前編譯的libcurl庫並不支援https。查閱資料發現原來libcurl預設的編譯配置是未開啟ssl支援的,所以需要重新配置並編譯。

怎麼編譯支援https的libcurl呢? ((((((((((((っ•ω•)っ Σ(σ`•ω•´)σ 起飛!)

方法1:

執行下面的編譯命令

nmake /f Makefile.vc mode=dll VC=12 WITH_DEVEL=C:\openssl_lib WITH_SSL=static ENABLE_SSPI=no ENABLE_IPV6=no

命令註釋

mode=dll 編譯libcurl位動態連結庫,如果static 就是把libcurl編譯位靜態庫

VC=10代表使用的是VC2010

WITH_DEVEL=C:\openssl_lib 表示用到第三方開發包的目錄,本例上面已經將openssl編譯好的開發包,安裝到此目錄

WITH_SSL=static ,代表使用libssl庫 是靜態庫

ENABLE_SSPI=no ENABLE_IPV6=no(禁用SSPI,ipV6功能)

更詳細的說明請參考:https://www.cnblogs.com/openiris/p/3812443.html

方法2:

小編後來發現其實libcurl原始碼已經提供了windows下通過VS進行編譯的工程配置,小編的原始碼放在E:\workspace\libcurl\curl-curl-7_71_1下。

1)、進入curl-curl-7_71_1\projects\Windows目錄,如下

2)、進入VC12目錄(即vs2013),開啟curl-all.sln,

裡面有兩個工程,

3)、選擇libcurl,在其專案配置中選擇對應的配置進行編譯即可。

編譯靜態庫選擇LIB Release/Debug 開頭的配置;編譯動態庫選擇DLL Release/Debug開頭的配置。

DLL Release - DLL OpenSSL:表示編譯DLL(動態庫)release版libcurl, 且依賴OpenSSL的DLL庫;

LIBRelease - DLL OpenSSL :表示編譯LIB(靜態庫)release版libcurl,且依賴OpenSSL的DLL庫;

LIB Release - LIB OpenSSL :表示編譯LIB(靜態庫)release版libcurl,且依賴OpenSSL的LIB庫;

注意!注意!注意!(ヾ(⌐ ■_■))

libcurl編譯時需要依賴OpenSSL/Gmssl, 工程配置中預設是按相對路徑來配置的。所以需要該相對路徑中存在openssl庫。

小編由於要採用gmssl,且該相對路徑位置也沒有OpenSSL的庫即標頭檔案,故將編譯好的gmssl LIB庫拷貝到E:\workspace\libcurl\deps\lib中,將gmssl標頭檔案拷貝至E:\workspace\libcurl\deps\include中。

然後修改了libcurl工程的LIB Release - LIB OpenSSL配置項,添加了依賴的GmSSL庫路徑。如下所示

5)、配置完成後,編譯。 然後可以去喝杯茶了......●'ω')_旦~

編譯完成後,在curl-curl-7_71_1\build\目錄下就有我們想要的東西啦。。。。。。؏؏☝ᖗ乛◡乛ᖘ☝؏؏