libcurl作為乙個優秀的網路庫,經常被整合到工程中。記錄一下在vs中整合libcurl出現了問題,之所以需要單獨記錄,是因為問題比較多,⊙﹏⊙b汗!
注:這些問題的方案大都來自其他博主,在此彙總記錄。
首先的問題是libcurl的配置,當然,這其實也不能算是個問題:工程配置中新增標頭檔案和lib檔案的引用
標頭檔案:專案右鍵--》屬性--》配置屬性--》c/c++--》附件包含目錄
error lnk2001: 無法解析的外部符號 __imp_curl_easy_perform
error lnk2001: 無法解析的外部符號 __imp_curl_easy_init
error lnk2001: 無法解析的外部符號 __imp_curl_slist_free_all
error lnk2001: 無法解析的外部符號 __imp_curl_easy_cleanup
error lnk2001: 無法解析的外部符號 __imp_curl_easy_setopt
解決方案:加入預編譯選項:專案右鍵--》屬性--》配置屬性--》c/c++--》預處理器--》預處理器,把 building_libcurl或curl_staticlib
1>libcurl.lib(ldap.obj) : error lnk2001: 無法解析的外部符號 __imp_ldap_init
1>libcurl.lib(ldap.obj) : error lnk2001: 無法解析的外部符號 __imp_ldap_unbind_s
1>libcurl.lib(ldap.obj) : error lnk2001: 無法解析的外部符號 __imp_ldap_set_option
1>libcurl.lib(ldap.obj) : error lnk2001: 無法解析的外部符號 __imp_ldap_******_bind_s
1>libcurl.lib(ldap.obj) : error lnk2001: 無法解析的外部符號 __imp_ldap_search_s
1>libcurl.lib(ldap.obj) : error lnk2001: 無法解析的外部符號 __imp_ldap_msgfree
1>libcurl.lib(ldap.obj) : error lnk2001: 無法解析的外部符號 __imp_ldap_err2string
1>libcurl.lib(ldap.obj) : error lnk2001: 無法解析的外部符號 __imp_ldap_first_entry
1>libcurl.lib(ldap.obj) : error lnk2001: 無法解析的外部符號 __imp_ldap_next_entry
1>libcurl.lib(ldap.obj) : error lnk2001: 無法解析的外部符號 __imp_ldap_first_attribute
1>libcurl.lib(ldap.obj) : error lnk2001: 無法解析的外部符號 __imp_ldap_next_attribute
1>libcurl.lib(ldap.obj) : error lnk2001: 無法解析的外部符號 __imp_ldap_get_values_len
1>libcurl.lib(ldap.obj) : error lnk2001: 無法解析的外部符號 __imp_ldap_value_free_len
1>libcurl.lib(ldap.obj) : error lnk2001: 無法解析的外部符號 __imp_ldap_get_dn
1>libcurl.lib(ldap.obj) : error lnk2001: 無法解析的外部符號 __imp_ldap_memfree
1>libcurl.lib(ldap.obj) : error lnk2001: 無法解析的外部符號 __imp_ber_free
解決方案:給工程新增依賴的庫:專案右鍵--》屬性--》配置屬性--》鏈結器--》輸入--》附件依賴項,把 ws2_32.lib、 winmm.lib、 wldap32.lib新增進去
這兩個問題的解決方案是參考部落格:感謝博主
1>libeay32mdd.lib(e_capi.obj) : error lnk2001: 無法解析的外部符號__imp__certgetcertificatecontextproperty@16
1>libeay32mdd.lib(e_capi.obj) : error lnk2001: 無法解析的外部符號 __imp__certopenstore@20
1>libeay32mdd.lib(e_capi.obj) : error lnk2001: 無法解析的外部符號 __imp__certclosestore@8
1>libeay32mdd.lib(e_capi.obj) : error lnk2001: 無法解析的外部符號 __imp__certenumcertificatesinstore@8
1>libeay32mdd.lib(e_capi.obj) : error lnk2001: 無法解析的外部符號 __imp__certfreecertificatecontext@4
1>libeay32mdd.lib(e_capi.obj) : error lnk2001: 無法解析的外部符號 __imp__certfindcertificateinstore@24
1>libeay32mdd.lib(e_capi.obj) : error lnk2001: 無法解析的外部符號 __imp__certduplicatecertificatecontext@4
參考部落格:
winsock.h和winsock2.h衝突問題:
解決方案:加入預編譯選項:專案右鍵--》屬性--》配置屬性--》c/c++--》預處理器--》預處理器,把win32_lean_and_mean加進去
解決使用 libcurl 遇到的多執行緒崩潰問題
使用 curl 訪問 http 鏈結時,用 easy handle,阻塞方式訪問時發現會每個訪問啟動乙個執行緒去進行dns 想減少這種消耗,故此採用了 sh curl share init curl share setopt sh,curlshopt share,curl lock data dns...
VS2015建立鍊錶時使用scanf遇到的問題
建立鍊錶遇到的第乙個問題 使用vs2015寫 錯誤 scanf s d d s p new num,p new score,p new name 此時會報錯 0x7be10b5c ucrtbased.dll 處 位於 鍊錶.exe 中 引發的異常 0xc0000005 寫入位置 0x00511000...
整合友盟遇到的問題
1.解決方法 這個問題是由於友盟不支援 armv7s。得移出armv7s,然後在other linker flags 中新增 objc就可以了 armv7s代表iphone5。在project build setting,然後把build active architecture only的值設定為y...