【问题标题】:C/C++ in Linux for curl/curl.h用于 curl/curl.h 的 Linux 中的 C/C++
【发布时间】:2013-07-05 05:13:13
【问题描述】:

我们正在使用 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)

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

-瓦桑特

【问题讨论】:

  • 你提到了 CentOS 和 Ubuntu。你应该告诉我们你正在使用什么发行版,并坚持下去。或者(但更难并且可能无用)您可以从其源代码编译libcurl

标签: c linux libcurl


【解决方案1】:

您的问题并非特定于 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(调试器)。

【讨论】:

    【解决方案2】:

    gcc(和变体)

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

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

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

    处理完目标文件后,有未解析的外部引用,所以库必须在最后。

    【讨论】:

      【解决方案3】:

      这里是你应该如何进行

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

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

      【讨论】:

      • 我相信安装你的发行版提供的libcurl的开发包更简单更明智。
      • 是的,我同意。我给了他那个,所以他知道在出现问题时该去哪里找。我什至安装了最新的 libcurl。它的直截了当。教程链接也提供了使用 libcurl 所需的一切
      猜你喜欢
      • 1970-01-01
      • 2021-05-28
      • 2011-05-30
      • 1970-01-01
      • 2014-07-17
      • 2021-07-27
      • 1970-01-01
      • 2015-08-16
      • 1970-01-01
      相关资源
      最近更新 更多