C/C++;在Linux中用于curl/curl.h
我们正在使用CentOS6(Linux),并试图仅通过C/C++连接Web服务器 我的研究: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 如果您已经安装了此软件
我找到了能够与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
),而不是从
实际上,您还应该学习如何使用GNUmake
(构建器)和gdb
(调试器)。与gcc
(和变体)
库必须是link命令中的最后一个
这是因为链接器按从左到右的顺序处理命令行参数
如果库位于对象文件之前,则在处理库时,没有要解析的未解析外部引用
处理完目标文件后,会有未解析的外部引用,因此库必须是最后一个。您提到CentOS和Ubuntu。您应该告诉我们您使用的是什么发行版,并坚持使用。或者(但更难,也可能没用)您可以从源代码编译
libcurl
。我相信安装发行版提供的libcurl
开发包更简单、更明智。是的,我同意。我给了他一个电话,这样他就知道在遇到问题时该去哪里找。我甚至安装了最新的libcurl。这是直截了当的。此外,教程链接还提供了使用libcurl所需的所有内容
g++ -Wall -g otherprog.cc -lcurl -o binotherprog