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

c++ curl undefined reference to _imp__curl_easy_init Codeblocks

本文关键字:curl 代码 引用 未定义 easy imp C++ init      更新时间:2023-10-16

从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

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

#define CURL_STATICLIB

看起来你正在静态链接到 curl,但 curl 需要被告知这一点,以便它公开实现。