2018年08月13日 11:44:30html
閱讀數:1 編輯c++
http://www.roselady.vip/a/cangjingge/boke/2018/0813/716.html curl
1、下載最新版本libcurl
https://curl.haxx.se/libcurl/
2、編譯
解壓進入curl-curl-7_59_0\winbuild\下
靜態庫,debug
nmake /f Makefile.vc mode=static VC=14 DEBUG=yes MACHINE=x86
靜態庫,release
nmake /f Makefile.vc mode=static VC=14 MACHINE=x86
在build目錄下生成庫文件include lib bin
3、新建工程進行測試
建一個空的工程,添加以下代碼:
#include "include/curl/curl.h"
int main()
{
curl_easy_init();
return 0;
}
報錯:
一、error LNK2019: 沒法解析的外部符號 __imp__curl_easy_init,該符號在函數 _main 中被引用
fatal error LNK1120: 1 個沒法解析的外部命令
libcurl沒有連接到程序中,找不到這個函數入口
解決方案:打開項目屬性,配置屬性 - C/C++ - 預處理器 - 預處理器定義 - 打開下拉框 - 編輯 - 文本框輸入CURL_STATICLIB - 保存(或者在curl.h中#define CURL_STATICLIB)
函數
二、error LNK2019: 沒法解析的外部符號 __imp__SetDIBitsToDevice@48
解決方法:
(1)給工程添加依賴庫:項目->屬性->連接器->輸入->附加依賴項,ws2_32.lib;winmm.lib;wldap32.lib添加進去。
(2)加入預編譯選項,項目->屬性->c/c++ ->預處理器->預處理器定義,把;BUILDING_LIBCURL;HTTP_ONLY添加進去,注意分號。
三、沒法解析的外部符號 __imp__CertOpenStore@20post
解決方法:在 項目屬性 - 連接器 - 輸入 - 附加依賴項 中加入: Crypt32.lib 便可。
四、沒法解析的外部符號 __imp__IdnToAscii@20
解決方法:在 項目屬性 - 連接器 - 輸入 - 附加依賴項 中加入:Normaliz.lib 便可。
附件爲測試工程(包含已編譯好的庫)https://download.csdn.net/download/px41834/10600191測試