【发布时间】:2019-11-23 21:52:05
【问题描述】:
所以我正在尝试将 curl 库集成到我的 c++ 项目中。我做了以下步骤:
- 下载 curl 库并解压
- 运行Visual Studio 19的开发者控制台并运行以下命令:
- cd 到 winbuild 文件夹
- 设置 RTLIBCFG=static
- nmake /f Makefile.vc mode=static vc=19 debug=yes
- 在 builds 文件夹中,我将 bin、include 和 lib 文件夹复制到了我自己的 Visual Studio 项目中,并在 Settings > C/C++ > General > Additional Include Directories 下设置了 include 目录,在 Settings > Linker > General > 下设置了 library 目录附加库目录,然后是设置 > 链接器 > 输入 > 附加依赖项下的实际库文件。
我认为这应该是让 CURL 运行,但是对于 lib 的每个函数调用,我都遇到了链接错误。即使在我将这些库添加到链接器输入中的附加依赖项设置之后: Normaliz.lib;Ws2_32.lib;Wldap32.lib;Crypt32.lib;advapi32.lib;
有什么解决办法吗?在我在互联网上的搜索中,我总是得到解决方案,包括 Noraliz.lib;[...] 然后它被告知它应该运行但它对我不起作用。会很高兴得到一些帮助。这是我尝试编译的代码:
#include <iostream>
#define CURL_STATICLIB
#include <curl/curl.h>
#include <iostream>
static int writer(char* data, size_t size, size_t nmemb, std::string* writerData)
{
if (writerData == NULL)
return 0;
writerData->append(data, size * nmemb);
return size * nmemb;
}
int main(int argc, char** argv)
{
std::string content;
curl_global_init(CURL_GLOBAL_ALL);
CURL* curl = curl_easy_init();
if (curl)
{
curl_easy_setopt(curl, CURLOPT_URL, "");
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &content);
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, writer);
CURLcode code = curl_easy_perform(curl);
}
curl_easy_cleanup(curl);
curl_global_cleanup();
return 0;
}
【问题讨论】: