[英]Trouble building/compiling libcurl in C++ Application
我是C ++的新手,有兴趣编写一个简单的应用程序以从Internet下载HTTP文件并处理其内容)。 无论如何,我在线上找到了一个名为libcurl的库。 我去了以下网站:
http://curl.haxx.se/download.html
无论如何,我下载了curl-7.34.0.zip(源档案),并且在里面,它包含许多文件夹。 我怀疑我需要包含的文件夹是:
我使用了CodeBlocks IDE。 我“递归地”将文件夹“ include / curl”添加到我的项目中。 看起来像这样:
我的main.cpp包含以下代码(取自网站上的示例应用程序):
#include <iostream>
#include <stdio.h>
#include "curl/curl.h"
using namespace std;
int main()
{
CURL *curl;
CURLcode res;
curl = curl_easy_init();
if(curl) {
curl_easy_setopt(curl, CURLOPT_URL, "http://example.com");
/* example.com is redirected, so we tell libcurl to follow redirection */
curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L);
/* Perform the request, res will get the return code */
res = curl_easy_perform(curl);
/* Check for errors */
if(res != CURLE_OK)
fprintf(stderr, "curl_easy_perform() failed: %s\n",
curl_easy_strerror(res));
/* always cleanup */
curl_easy_cleanup(curl);
}
return 0;
}
尝试构建/编译时,我收到以下错误消息。
undefined reference to '_imp__curl_easy_init'
undefined reference to '_imp__curl_easy_setopt'
undefined reference to '_imp__curl_easy_perform'
undefined reference to '_imp__curl_easy_strerror'
undefined reference to '_imp__curl_easy_cleanup'
我不确定丢失了什么或者我的文件夹目录使用不正确。 您是否有任何建议可以帮助我通过Source Archive或Binary Package建立此文件? 谢谢。
这里有几个问题:
#include <curl.h>
:您使用<>
表示-在包含目录中搜索。 尝试将其替换为: #include "curl.h"
-表示搜索项目并包含目录。 但是你应该这样做。 1-因为此代码不属于您的项目。 它是curl项目的一部分。
编辑如评论中所述-它取决于您实际放置标题的位置。 如果将它们放在include\\curl
目录中,请使用#include "curl/curl.h"
。
问题编辑后,您需要指定.lib引用。 使用curl时,您不会对其进行编译。 一些天才的家伙已经将它编译为从curl到.dll
的形式。 除非您告诉程序如何使用,否则您的程序不知道如何使用它们。 为此,您必须更改链接器选项-通过提供所谓的lib
文件。 lib
文件可以告诉链接器应使用哪个.dll
。
我假设您有卷曲目录。 除了include
之外, include
应该有lib
。 现在您需要做的就是告诉链接器您需要curl的lib
目录中的libcurl.a
。 继续: 项目构建选项| 链接器设置 。 在“ Link libraries
部分中,指定libcurl.a
的路径。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.