C++的库路径.失败?

Dar*_*der 3 c++ macos curl header path

我试图在mac上执行此代码.我已经安装了卷发.当我搜索卷曲时,我可以找到它/usr/include/curl/curl.h.以下是我想要运行的程序.取自这里.

#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;
}
Run Code Online (Sandbox Code Playgroud)

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

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
Run Code Online (Sandbox Code Playgroud)

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

我该如何解决?

小智 6

您忘记链接libcurl库:

g++ simple.cpp -lcurl
Run Code Online (Sandbox Code Playgroud)

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


Dan*_*ani 5

该程序确实找到了包含文件,但没有找到库文件.
库文件应该类似于libcurl.dylib或libcurl.a
使用它来链接它:

g++ simple.cpp -lcurl
Run Code Online (Sandbox Code Playgroud)