**已关闭。**此问题需要debugging details。当前不接受答案。
编辑问题以包含desired behavior, a specific problem or error, and the shortest code necessary to reproduce the problem。这将有助于其他人回答问题。
4天前关闭。
Improve this question
我在函数中发布了一个curl post请求:curl代码:
std::string MakePost(std::string site, std::string login, std::string password, bool IsMessage, bool IsName) {
std::string arr[] = { "username", login, "password", password };
std::string headers = GetHeaders(arr, 2);
std::string readBuffer;
std::string toSend = (IsMessage ? ("message=") : (""));
toSend = (IsName ? ("name=") : (toSend));
toSend += headers;
int status = -1;
CURL* curl;
CURLcode res;
std::string response;
std::string url = site;
std::string data = toSend;
curl_global_init(CURL_GLOBAL_ALL);
curl = curl_easy_init();
if (curl) {
curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
curl_easy_setopt(curl, CURLOPT_POST, 1);
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, data.c_str());
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, wc);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
res = curl_easy_perform(curl);
if (res != CURLE_OK)
{
std::cout << "request failed to " << site << toSend << std::endl;
curl_easy_cleanup(curl);
return std::string("request failed to") + site + toSend;
}
}
curl_easy_cleanup(curl);
return response;
}
操作:Visual Studio 2019错误截图:error screenshot
项目中还包括第三方库:iostream,字符串,cstdio,cstdlib,fstream,curl/curl. h我的错误是什么?
1条答案
按热度按时间qxgroojn1#
不久前也遇到过同样的问题。
问题是您包含了curl,但可能没有将其添加到链接器中,因此链接器不知道如何解析此函数,或者换句话说,它找不到它的代码。
1.首先,确保curl库已经安装,如果没有,执行
vcpkg.exe install curl:x64-windows
1.然后进入项目设置-〉vcpkg-〉使用vcpkg-〉是
1.最后,转到链接器-〉附加依赖项并添加libcurl.lib和zlib.lib
1.转到C/C ++-〉预处理器-〉预处理器定义,然后添加
CURL_STATICLIB
如果这样做不起作用,请尝试将vcpkg路径添加到环境变量中的路径,它应该类似于
C:\Users\name\vcpkg\installed\x86-windows\lib
和C:\Users\name\vcpkg\installed\x86-windows\include
。如果您正在为x64编译,请使用x64而不是x86文件夹,对我来说,如果我不这样做,它会导致问题。
但是,如果这也不起作用,只是做它完全手动。
1.转到Github and get the Curl header files
1.转到您的项目并添加一个文件夹,在其中放置这些。
1.转到项目设置C/C ++-〉附加包含目录并添加路径。
1.转到我前面提到的安装Curl的Vcpkg文件夹,复制zlib.lib和libcurl.lib。
1.在项目中创建一个新文件并将它们粘贴到其中。
1.转到您的设置链接器-〉常规-〉附加库目录并添加路径到您最近创建的文件夹
1.转到链接器-〉输入-〉附加依赖项并添加zlib.lib和libcurl.lib
1.转到C/C ++-〉预处理器-〉预处理器定义并添加
CURL_STATICLIB