C/C++;在Linux中用于curl/curl.h

C/C++;在Linux中用于curl/curl.h,c,linux,libcurl,C,Linux,Libcurl,我们正在使用CentOS6(Linux),并试图仅通过C/C++连接Web服务器 我的研究: 我找到了能够与Web服务器通信的curl库 所以我在中安装了ubuntu-7.22.0版本 我能够包含“curl/curl.h”,但无法编译它们的方法 问题: 请让我知道适合我们平台的curl的正确版本,以及如何添加-lcurl进行编译。(例如:g++-lcurl-api.c) 请给出详细的解释,因为它对我来说更重要。提前谢谢 -瓦桑斯以下是您应该如何进行 从这个链接安装curl 如果您已经安装了此软件

我们正在使用CentOS6(Linux),并试图仅通过C/C++连接Web服务器

我的研究:
我找到了能够与Web服务器通信的curl库
所以我在中安装了ubuntu-7.22.0版本

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

问题:

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

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


-瓦桑斯

以下是您应该如何进行

从这个链接安装curl 如果您已经安装了此软件,请转到本页

然后按照本教程进行操作

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

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

(或C++程序)< /P> 当然,您需要开发包,例如

libcurl-dev
libcurl3-gnutls-dev
libcurl4-gnutls-dev
(打包在Ubuntu中);在CentOS发行版上,它可能被称为
libcurl-devel
或其他名称

您应该安装发行版提供的开发包(用于
libcurl
),而不是从

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

gcc
(和变体)

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

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

如果库位于对象文件之前,则在处理库时,没有要解析的未解析外部引用


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

您提到CentOS和Ubuntu。您应该告诉我们您使用的是什么发行版,并坚持使用。或者(但更难,也可能没用)您可以从源代码编译
libcurl
。我相信安装发行版提供的
libcurl
开发包更简单、更明智。是的,我同意。我给了他一个电话,这样他就知道在遇到问题时该去哪里找。我甚至安装了最新的libcurl。这是直截了当的。此外,教程链接还提供了使用libcurl所需的所有内容
 g++ -Wall -g otherprog.cc -lcurl -o binotherprog