我对 C++ 非常陌生,我正在尝试使用libcurl
以下代码获取 URL 的源代码:
#include<curl/curl.h>
#include<iostream>
using namespace std;
size_t curl_to_string(void *ptr, size_t size, size_t nmemb, void *data) {
std::string *str = (std::string *) data;
char *sptr = (char *) ptr;
unsigned int x;
for (x = 0; x < size * nmemb; ++x) {
(*str) += sptr[x];
}
return size * nmemb;
}
int main(int argc, char *argv[]) {
CURL *curl;
CURLcode res;
std::string pagedata;
curl = curl_easy_init();
if (curl) {
curl_easy_setopt(curl, CURLOPT_URL, "http://google.com");
res = curl_easy_perform(curl);
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, curl_to_string);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &pagedata);
curl_easy_cleanup(curl);
}
cout << pagedata << endl;
return 0;
}
我一直收到链接器错误,例如:
undefined reference to `_imp__curl_easy_setopt' updater.cpp /ATVSiteDBManager/src line 30 C/C++ Problem
undefined reference to `_imp__curl_easy_init' updater.cpp /ATVSiteDBManager/src line 28 C/C++ Problem
undefined reference to `_imp__curl_easy_setopt' updater.cpp /ATVSiteDBManager/src line 32 C/C++ Problem
undefined reference to `_imp__curl_easy_perform' updater.cpp /ATVSiteDBManager/src line 31 C/C++ Problem
undefined reference to `_imp__curl_easy_cleanup' updater.cpp /ATVSiteDBManager/src line 35 C/C++ Problem
undefined reference to `_imp__curl_easy_setopt' updater.cpp /ATVSiteDBManager/src line 33 C/C++ Problem
我正在使用 Eclipse。但是要让它工作,互联网上的任何方法都没有解决。我反复尝试-lcurl
,但并没有解决问题。但是我做的最后一件事是libcurl.dll
从curl的目录复制到输出目录,并在同一目录下lib
重命名了一个名为libcurldll.a
to的文件,奇迹般地解决了问题,代码工作正常。libcurl.dll.a
这是完成这个简单任务而没有任何副作用的正确方法吗?