libCURL開源庫在VS2010環境下編譯安裝,配置詳解

CURL開源庫VS2010環境下編譯安裝,配置詳解
html


一 準備

1.1 CURL官網下載地址:http://curl.haxx.se/download.html

1.2 找到源碼包,我這裏下載的是7.32.0版:http://curl.haxx.se/download/curl-7.32.0.zip

二 步驟

2.1

打開curl-7.32.0\vs\vc8\lib\vc8libcurl.vcproj文件,VS會提示升級工程,下一步便可

VC工程裏有些設置問題致使不能直接編譯,須要稍做修改

2.2

打開工程屬性 > C\C++ > 常規 > 附加包含目錄。這裏的包含目錄是"..\include",而這個目錄根本就不存在,它應該指

向"curl-7.32.0\include"纔對,因此把這裏改爲"..\..\..\include"。(或者直接完整路徑也能夠)

 

2.3打開工程屬性 > C\C++ > 預處理器 > 預處理器定義。這裏有個默認宏"BUILDING_LIBCURL",把它改

成"CURL_STATICLIB"。這樣,那些接口函數就不會被聲明爲導出函數了。

 

2.4打開工程屬性 > C\C++ > 庫管理器 > 常規 > 附加依賴項。添加ws2_32.lib和wldap32.lib,這是CURL必須依賴的。


2.5.把"libcurl.rc"從工程中移除,它只是版本信息,只會增大文件,去掉!(無所謂)


2.6 可編譯出以下版本,根據須要手動設置編譯

libcurld.lib //debug      Multi-threaded (/MT)
 
libcurl.dll  //release    Multi-threaded Debug (/MTd)

//以上爲靜態庫版本,生成exe體積大,包含庫。

生成兩種版本的都可。可是鏈接使用的時候注意對應版本。


libcurld.lib //debug     Multi-threaded DLL Debug (/MDD)
 
libcurl.dll //release    Multi-threaded DLL (MD)

//以上爲動態庫版本,生成exe體積小,不包含庫。

2.7 而後將其分別放入本身建立一個debug和一個release文件夾內、

    例如debug/libcurl.lib release//libcurl.lib
        debug/libcurl.dll release//libcurl.dll
 注意將其放入C:\curl-7.32.0\curl-7.32.0\lib\目錄裏面
(能夠自定義,只要注意後面庫包含時的變量就能夠了)

2.8 建立兩個環境變量 

例如 CURL_INC設置爲C:\curl-7.32.0\curl-7.32.0\include
例如 CURL_LIB設置爲C:\curl-7.32.0\curl-7.32.0\lib



三 結果測試

3.1 而後開始測試如何使用。
   
爲了測試lib文件,新建一個控制檯程序,

打開工程屬性 > C\C++ > 常規 >包含頭文件$(CURL_INC)
打開工程屬性 > C\C++ > 常規 >包含庫文件$(CURL_LIB)\debug
(此處注意debug和release不一樣,以避免影響後期工程調試)
3.2 

打開工程屬性 > C\C++ > 預處理器 > 預處理器定義。添加"CURL_STATICLIB"。
curl



這樣,那些接口函數就不會被聲明爲導出函數了函數

3.3 添加依賴庫文件測試



3.4 找個自帶的例子測試 /docs/examples/simple.c源文件

url

[cpp] view plaincopyprint?spa

  1. #include "stdafx.h"  .net

  2. #include <stdio.h>  debug

  3. #include <curl/curl.h>    調試

  4.   

  5. #pragma comment(lib,"libcurl.lib")  code

  6.   

  7. int _tmain(int argc, _TCHAR* argv[])  

  8. {  

  9.     CURL *curl;  

  10.     CURLcode res;  

  11.   

  12.     curl = curl_easy_init();  

  13.     if(curl) {  

  14.         curl_easy_setopt(curl, CURLOPT_URL, "http://www.baidu.com");  

  15.         /* example.com is redirected, so we tell libcurl to follow redirection */  

  16.         curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L);  

  17.   

  18.         /* Perform the request, res will get the return code */  

  19.         res = curl_easy_perform(curl);  

  20.         /* Check for errors */  

  21.         if(res != CURLE_OK)  

  22.             fprintf(stderr, "curl_easy_perform() failed: %s\n",  

  23.             curl_easy_strerror(res));  

  24.   

  25.         /* always cleanup */  

  26.         curl_easy_cleanup(curl);  

  27.     }  

  28.     return 0;  

  29. }  



3.5 實例測試結果


相關文章
相關標籤/搜索