C ++ curl对_imp__curl_easy_init代码块的未定义引用

时间:2019-02-08 07:35:57

标签: c++ curl codeblocks libcurl

从github下载预编译的libcurl,将库链接到项目并包含头文件,我正在尝试运行简单的代码

#include <iostream>
#include <string>
#include <curl/curl.h>


static size_t WriteCallback(void *contents, size_t size, size_t nmemb, void *userp)
{
    ((std::string*)userp)->append((char*)contents, size * nmemb);
    return size * nmemb;
}

int main(void)
{
  CURL *curl;
  CURLcode res;
  std::string readBuffer;

  curl = curl_easy_init();
  if(curl) {
    curl_easy_setopt(curl, CURLOPT_URL, "http://www.google.com");
    curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
    curl_easy_setopt(curl, CURLOPT_WRITEDATA, &readBuffer);
    res = curl_easy_perform(curl);
    curl_easy_cleanup(curl);

    std::cout << readBuffer << std::endl;
  }
  return 0;
}

但是我收到错误消息

对_imp__curl_easy_init的未定义引用 对_imp__curl_easy_setopt的未定义引用 对_imp__curl_easy_perform的未定义引用 对_imp__curl_easy_cleanup的未定义引用

有人可以帮助我吗?我在Windows 10上并使用代码块17

1 个答案:

答案 0 :(得分:1)

您应该在包含curl之前添加此定义:

#define CURL_STATICLIB

您似乎在静态链接到curl,但是必须告知curl以便公开实现。