c++ - C++ 的库路径。失败?

标签 c++ macos curl path header

我正在尝试在 Mac 上执行此代码。我已经安装了 curl 。当我搜索 curl 时,我可以在 /usr/include/curl/curl.h 下找到它。下面是我要运行的程序。取自here .

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

int main(void)
{
  CURL *curl;
  CURLcode res;

  curl = curl_easy_init();
  if(curl) {
    curl_easy_setopt(curl, CURLOPT_URL, "http://example.com");
    res = curl_easy_perform(curl);

    /* always cleanup */
    curl_easy_cleanup(curl);
  }
  return 0;
}

当我尝试编译程序时。见下文。

g++ simple.cpp 
Undefined symbols:
  "_curl_easy_perform", referenced from:
      _main in cciFNPkt.o
  "_curl_easy_init", referenced from:
      _main in cciFNPkt.o
  "_curl_easy_setopt", referenced from:
      _main in cciFNPkt.o
  "_curl_easy_cleanup", referenced from:
      _main in cciFNPkt.o
ld: symbol(s) not found
collect2: ld returned 1 exit status

这是怎么回事?为什么程序找不到这个文件的路径?

我该如何解决?

最佳答案

您忘记链接 libcurl 库:

g++ simple.cpp -lcurl

头文件,例如 <curl/curl.h> (通常)只声明一组函数存在但不包含实际函数。对于 OS X Lion 上的 curl,这些函数位于 libcurl(/usr/lib/libcurl.dylib,它指向/usr/lib/libcurl.4.dylib)中。您需要告诉链接器(通过编译器前端)有关该库的信息,这可以通过 -lcurl 完成。 .

关于c++ - C++ 的库路径。失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7814868/

相关文章:

c++ - 用对象填充作为参数传递的数组

iphone - quartz 无需其他库就能渲染pdf吗?

macos - 在 macos 上用brew安装ant出错了?

php - 升级到 Mac OSX Sierra 时遇到 mcrypt 错误问题

java - Servlet session 不是持久的

c++ - 对大文件执行 FFT 的最快方法是什么?

C++以基类为输入访问派生类成员函数

c++ - 为什么在 child 被破坏后 parent 的方法仍然存在

php - PHP 中的 cURL 下载进度不起作用?

macos - 如何使用curl下载文件