Visual Studio(VS2017)編譯並配置C/C++-libcurl開發環境
本文開發環境
【警告】
請確保電腦上沒有安裝VS2017以外版本的Visual Studio(尤其是VS2015),否則可能會出現LNK2001錯誤。
編譯libcurl
開啟上方libcurl的下載地址,下載最新版的壓縮包。
解壓。本文選擇解壓至桌面(強烈建議解壓至桌面)。
開啟curl資料夾,執行buildconf.bat
。
進入curl資料夾中的winbuild
資料夾,並複製其路徑。
本文以編譯x64為例
在開始選單中找到Visual Studio 2017
資料夾,編譯64位則右擊x64 Native Tools Command Prompt for VS 2017
x86 Native Tools Command Prompt for VS 2017
,選擇Run as administrator
。 輸入cd
(有空格),再貼上剛剛複製的winbuild
資料夾路徑,回車。(如果命令列碟符和winbuild
資料夾所在盤碟符不同,則需要先切到winbuild
資料夾所在盤)
VS2017+x64+靜態編譯:
輸入nmake /f Makefile.vc mode=static VC=14 MACHINE=x64 DEBUG=no
。
如果想使用動態編譯,將mode=static
改為mode=dll
。(本文僅教靜態編譯,同時curl官方也不建議使用動態編譯)
如果使用x86,將MACHINE=x64
MACHINE=x86
。 如果需要debug版,將
DEBUG=no
改為DEBUG=yes
。 如果你是最新版的VS2017,
VC=14
可以改為VC=15
。 更詳細的編譯指令及說明可以開啟
winbuild
資料夾中的BUILD.WINDOWS.txt
檢視。 回車,等待編譯完成,關閉控制檯介面。
開啟curl資料夾中的builds
資料夾,將名字最短的資料夾備份(如果x64和x86都編譯了,則需要備份兩個名字最短的資料夾),curl資料夾如果無其他需要則可全部刪除。
配置工程
本文將編譯生成的資料夾剪下至其他路徑,以便長期使用。
新建一個專案。本文選擇新建一個名為Test
右擊專案,選擇Properties
。
選擇需要的配置。
本圖為本文所選擇的配置,請自行根據需要選擇配置。
將剛剛編譯生成的資料夾中的include
資料夾和lib
資料夾新增至工程。(如果編譯了debug版libcurl,則應將debug資料夾中的內容新增至debug配置工程)
將以下lib新增至工程。
libcurl_a.lib
Ws2_32.lib
Wldap32.lib
winmm.lib
Crypt32.lib
Normaliz.lib
本文使用了靜態編譯libcurl,所以需要將CURL_STATICLIB
新增至工程。
如果沒有編譯debug版libcurl,則需要將“Runtime Library”改為Release版(即後面不帶小寫字母d
)。同時官方並不建議使用“/MT”或“/MTd”。
注意此處設定修改為和上述設定一致。
測試程式碼
#include <curl/curl.h>
int main(int argc, char* argv[]) {
CURL *curl = 0;
CURLcode res;
curl = curl_easy_init();
if (curl != 0) {
curl_easy_setopt(curl, CURLOPT_URL, "https://www.baidu.com");
/* example.com is redirected, so we tell libcurl to follow redirection */
curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L);
/* Perform the request, res will get the return code */
res = curl_easy_perform(curl);
/* Check for errors */
if (res != CURLE_OK) {
fprintf(stderr, "curl_easy_perform() failed: %s\n", curl_easy_strerror(res));
}
/* always cleanup */
curl_easy_cleanup(curl);
}
return 0;
}
恕不作答VS2017以外的編譯器如何配置libcurl。