1 編譯libcurl靜態(tài)庫
??? 確保C/C++頁面下代碼生成/運(yùn)行庫確保跟解決方案保持一致,確保常規(guī)下輸出路徑和目標(biāo)文件名稱(d)
目前創(chuàng)新互聯(lián)公司已為1000+的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)站空間、網(wǎng)站托管維護(hù)、企業(yè)網(wǎng)站設(shè)計(jì)、景寧畬族自治網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
2 C/C++屬性頁面中的預(yù)處理器屬性頁設(shè)置定義
_DEBUG
BUILDING_LIBCURL
DEBUGBUILD
CURL_STATICLIB
USE_WINDOWS_SSPI
USE_SCHANNEL
USE_WINDOWS_SSPI和USE_SCHANNEL兩個預(yù)編譯處理定義是用來定義HTTPS,為了使用https協(xié)議需要指定,切記!
3 調(diào)用工程C/C++屬性頁面中的預(yù)處理器屬性頁設(shè)置定義
BUILDING_LIBCURL
CURL_STATICLIB
因?yàn)楹甓x主要作用于curl/curl.h頭文件,用于頭文件的宏定義條件編譯,必須定義這兩個宏定義,否則編譯出錯,看出錯分析
2 鏈接錯誤分析
1)error LNK2019: 無法解析的外部符號 __imp__curl_easy_init,該符號在函數(shù) _main 中被引用
分析:不定義CURL_STATICLIB 編譯結(jié)果,因?yàn)镃URL_EXTERN CURL *curl_easy_init(void);函數(shù)之前有CURL_EXTERN定義,而該定義在
#ifdef CURL_STATICLIB
#? define CURL_EXTERN
#elif defined(WIN32) || defined(_WIN32) || defined(__SYMBIAN32__)
#? if defined(BUILDING_LIBCURL)
#??? define CURL_EXTERN? __declspec(dllexport)
#? else
#??? define CURL_EXTERN? __declspec(dllimport)
#? endif
#elif defined(BUILDING_LIBCURL) && defined(CURL_HIDDEN_SYMBOLS)
#? define CURL_EXTERN CURL_EXTERN_SYMBOL
#else
#? define CURL_EXTERN
#endif
這里被定義,如果沒有定義CURL_STATICLIB,將會導(dǎo)致CURL_EXTERN被替換成__declspec(dllexport)或者_(dá)_declspec(dllimport),這兩個聲明只應(yīng)用于動態(tài)鏈接,不能應(yīng)用于靜態(tài)鏈接
2)error LNK2019: 無法解析的外部符號 __imp__ldap_init,該符號在函數(shù) __ldap_free_urldesc 中被引用
在引用項(xiàng)目的屬性中添加額外的靜態(tài)庫Crypt32.lib,Wldap32.lib,否則出現(xiàn)如下的錯誤,因?yàn)橛玫絟ttps
3)C2371?“curl_share_init”: 重定義;不同的基類型?libcurl
查看源碼,如果沒有定義BUILDING_LIBCURL,將導(dǎo)致curl_share_init在聲明和定義中出現(xiàn)返回類型不一致的問題
#if defined(BUILDING_LIBCURL) || defined(CURL_STRICTER)
typedef struct Curl_easy CURL;
typedef struct Curl_share CURLSH;
#else
typedef void CURL;
typedef void CURLSH;
#endif
標(biāo)題名稱:libcurl第二課編譯靜態(tài)庫
標(biāo)題網(wǎng)址:http://jinyejixie.com/article16/pshsgg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站維護(hù)、網(wǎng)站設(shè)計(jì)公司、商城網(wǎng)站、企業(yè)建站、網(wǎng)站排名、App開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)