2009-11-03 215 views
2

所以我从curl网站下载了zip文件。我将包含所有头文件的目录复制到我的include目录中。包括curl.h在内没有问题,但是,当我真正调用一个函数时,突然间我的C++应用程序将不再编译。在项目中包含libcurl

下面是我收到的错误:

[Linker error] undefined reference to 
`curl_easy_init' 

下面的代码:

#define CURL_STATICLIB 
#include <curl/curl.h> 
#include <string> 
#include <iostream> 
using namespace std; 

int main() { 
     string url = "http://www.google.com"; 
     cout << "Retrieving " << url << endl; 

     // Our curl objects 
     CURL *curl; 
     CURLcode result; 

     // Create our curl handle 
     curl = curl_easy_init(); 

    system("pause"); 

    return 0; 
} 

如果我注释掉卷曲= curl_easy_init()行,它工作正常。

根据文档,这应该工作,as seen here

任何想法?

+0

后你的错误添加卷曲。最有可能这是一个链接问题... – ephemient 2009-11-03 19:14:03

+0

编辑...不能相信我错过了。 – 2009-11-03 19:21:30

+0

发布你的命令行参数链接器。你可能忘了告诉链接器你需要卷曲。它无法猜测数百个可用库中哪些包含您需要的符号。 – Arkadiy 2009-11-03 19:30:06

回答

4

必须使用curl库

-L/path/of/curl/lib/libcurl.a (g++) 

链接程序或解决方案

Solution->properties->Link(ing) and add libcurl.lib 
+0

http://curl.haxx.se/download/curl-7.19.6.zip中没有libcurl.a – 2009-11-03 19:47:30

+0

有没有.so? – 2009-11-04 00:08:39

+0

没有。有libcurl.imp,.plist,.rc和.vcproj,但没有.a或.so – 2009-11-04 15:32:02