我正在尝试在 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/