最近想要試著使用C++鏈接API介面,但是在新建工程之后,匯入庫的時候怎么也無法成功匯入,下面貼出具體操作程序,希望得到大佬們提點。
1、建專案和相關配置部分:
首先建一個空專案:


將相關.h .c檔案加入工程:

進行目錄的相關配置:



附上我的測驗代碼:
#include <curl.h>
#include <iostream>
#pragma comment(lib,"libcurl_a.lib")
using namespace std;
/**
* 一旦curl接收到資料,就會呼叫此回呼函式
* buffer:資料緩沖區指標
* size:除錯階段總是發現為1
* nmemb:(memory block)代表此次接受的記憶體塊的長度
* userp:用戶自定義的一個引數
*/
size_t write_data(void* buffer, size_t size, size_t nmemb, void* userp)
{
static int current_index = 0;
cout << "current:" << current_index++;
cout << (char*)buffer;
cout << "---------------" << endl;
int temp = *(int*)userp; // 這里獲取用戶自定義引數
return nmemb;
}
int curl_test_h(void)
{
curl_global_init(CURL_GLOBAL_ALL); // 首先全域初始化CURL
CURL* curl = curl_easy_init(); // 初始化CURL句柄
if (NULL == curl)
{
printf("(curl is NULL!\r\n");
return 0;
}
int my_param = 1; // 自定義一個用戶引數
// 設定目標URL
curl_easy_setopt(curl, CURLOPT_URL, "http://www.baidu.com");
// 設定接收到HTTP服務器的資料時呼叫的回呼函式
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_data);
// 設定自定義引數(回呼函式的第四個引數)
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &my_param);
// 執行一次URL請求
CURLcode res = curl_easy_perform(curl);
// 清理干凈
curl_easy_cleanup(curl);
return 0;
}
void main()
{
printf("hello world !");
}
報錯:
1>test_C++_eD_API3.obj : error LNK2001: 無法決議的外部符號 __imp__curl_easy_cleanup
1>test_C++_eD_API3.obj : error LNK2001: 無法決議的外部符號 __imp__curl_easy_perform
1>test_C++_eD_API3.obj : error LNK2001: 無法決議的外部符號 __imp__curl_easy_setopt
1>test_C++_eD_API3.obj : error LNK2001: 無法決議的外部符號 __imp__curl_easy_init
1>test_C++_eD_API3.obj : error LNK2001: 無法決議的外部符號 __imp__curl_global_init
1>d:\documents\visual studio 2010\Projects\test_C++_eD_API4\Debug\test_C++_eD_API4.exe : fatal error LNK1120: 5 個無法決議的外部命令
1>
1>生成失敗。
(很明顯就是庫沒有匯入,但是,問題出現在哪呢[生無可戀.jpg])
2、附上我獲取libcurl_a.lib 和json.lib的程序
curl的靜態庫參考了這位大大:
https://blog.csdn.net/cym1990/article/details/79851039
json靜態庫獲取的參考的方法:
https://www.cnblogs.com/zhangfengfly/p/7225926.html
uj5u.com熱心網友回復:
新手報到,請多指教。自己頂下樓。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/45912.html
上一篇:Victor串口控制元件的使用
