用于curl / curl.h的Linux中的C / C ++

时间:2013-07-05 05:13:14

标签: c linux libcurl

我们正在使用CentOS6(Linux)并尝试仅通过C / C ++连接网络服务器。

我的研究:
             我找到了能够与webserver通信的curl库 所以我在http://curl.haxx.se/download.html

中安装了ubuntu-7.22.0版本

我能够包含“curl / curl.h”,但无法编译他们的方法。

问题:

请让我知道我们平台的curl版本以及如何添加-lcurl进行编译。 (例如:g ++ -lcurl api api.c)

请详细解释,因为它对我来说更重要。提前致谢。

-Vasanth

3 个答案:

答案 0 :(得分:8)

您的问题并非特定于curlgcc的参数顺序很重要:编译器选项,然后是源文件,然后是目标文件,然后是库(从高级到低级) );所以尝试用

编译
 gcc -Wall -g prog.c -lcurl -o binprog

或(对于C ++程序)

 g++ -Wall -g otherprog.cc -lcurl -o binotherprog

当然你需要开发包,例如libcurl-devlibcurl3-gnutls-devlibcurl4-gnutls-dev(打包在Ubuntu中);在您的CentOS发行版中,它可能被称为libcurl-devel或其他内容。

您应该安装您的发行版提供的开发包(适用于libcurl),而不是http://curl.haxx.se/download.html

实际上,您还应该学习如何使用GNU make(构建器)和gdb(调试器)。

答案 1 :(得分:1)

使用gcc(和变体)

库必须是link命令的最后一个。

这是因为链接器按从左到右的顺序处理命令行参数。

如果库位于目标文件之前,则在处理库时,不会解析未解析的外部引用。

处理完目标文件后,还有未解析的外部引用,因此库必须是最后的。

答案 2 :(得分:0)

以下是您应该如何处理

从此链接安装curl http://curl.haxx.se/download.html 如果你已经安装了这个,请转到此页面

然后按照本教程 http://curl.haxx.se/libcurl/c/libcurl-tutorial.html