0

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

我的研究:
我找到了能够与网络服务器通信的 curl 库,所以我在http://curl.haxx.se/download.html
中安装了 ubuntu-7.22.0 版本

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

问题:

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

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

-瓦桑特

4

3 回答 3

8

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

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

或(对于 C++ 程序)

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

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

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

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

于 2013-07-05T05:22:14.347 回答
1

gcc(和变体)

该库必须位于链接命令的最后。

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

如果库在目标文件之前,则在处理库时,没有要解析的未解析外部引用。

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

于 2016-03-02T16:01:22.620 回答
0

以下是您应该如何进行

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

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

于 2013-07-05T05:21:20.273 回答