【问题标题】:Ubuntu - #include <curl/curl.h> no such file or directoryUbuntu - #include <curl/curl.h> 没有这样的文件或目录
【发布时间】:2014-05-15 01:56:36
【问题描述】:

我正在 Ubuntu 上使用 Curl 开发一个 C 程序。我正在使用 Eclipse 开普勒。 我已经使用

安装了 curl 库

apt-get install libcurl4-gnutls-dev

我检查了是否一切正常

ls -l /usr/include/curl

我明白了

总共 172 个

-rw-r--r-- 1 根根 7065 janv。 31 16:49 curlbuild.h

-rw-r--r-- 1 根根 81593 janv。 31 16:49 curl.h

-rw-r--r-- 1 根根 8901 janv。 31 16:49 curlrules.h

-rw-r--r-- 1 根根 2741 janv。 31 16:49 curlver.h

-rw-r--r-- 1 根根 3472 janv。 31 16:49 easy.h

-rw-r--r-- 1 根根 2790 janv。 31 16:49 mprintf.h

-rw-r--r-- 1 根根 12981 janv。 31 16:49 多.h

-rw-r--r-- 1 根根 1330 janv。 31 16:49 stdcheaders.h

-rw-r--r-- 1 根根 36048 janv。 31 16:49 typecheck-gcc.h

虽然我的 curl.h 文件在那里,但当我尝试构建我的程序时 Eclipse 写了这条消息:

致命错误:curl/curl.h:没有这样的文件或目录 编译终止。

我忘了设置什么?一切看起来都不错! :'( 谢谢!

【问题讨论】:

  • 你运行了什么命令来构建?你的 $PATH 是什么样的?
  • 天哪!就是这样,实际上我使用了位于 /opt/toolchains/arm-2011.V2/bin 中的特定环境变量。我的 curl.h 应该在这里的某个地方吗?
  • 感谢您向我们展示要为 libcurl 添加哪个软件包 - “apt-get install libcurl4-gnutls-dev”

标签: c eclipse ubuntu curl


【解决方案1】:

C 编译器(实际上是预处理器)标准包含文件搜索路径应该包含 /usr/include,因此如果包含文件 curl.h 位于 /usr/include/curl/ 并被 #include &lt;curl/curl.h&gt; 包含,则 C 编译器,例如gcc,应该能找到没有问题的。

但是,您使用的是/opt/toolchains/arm-2011.V2/bin 下的工具链,我猜它是一个交叉编译工具链。在这种情况下,您不能使用 curl 库,因为它是用于主机系统的,可能是 x86 或 x86_64 系统。

要在您的 ARM 项目中使用 curl 库,如果可能的话,您需要安装适用于 ARM 的 curl 库开发包。如果软件仓库没有这些包,那么您需要先下载源代码并针对 ARM 进行交叉编译。

【讨论】:

  • 嗯,其实我对这个编译器不熟悉,Gcc,gdb,...什么的。我为一个学校项目工作,我对 arm 使用交叉编译。工具链位于 /opt/toolchains/arm-2011.V2。我添加了环境变量 PATH = /opt/toolchains/arm-2011.V2/bin。这和我的 curl.h 文件有什么关系吗?
  • @user3493179 在这种情况下,您不能使用刚刚安装的 curl 库,除非您的 Linux 发行版适用于 ARM。
  • 嗯,我正在开发的嵌入式系统是一个在 ARM9 上托管 linux 发行版的系统。我不知道使用的发行版是什么。在尝试使用其特定的工具链进行编译之前,我是否需要知道这一点?有没有其他方法可以在不使用 curl 的情况下将数据发送到 Web 服务器? :'(
  • @user3493179 您不需要知道您使用哪个 Linux 发行版来交叉编译 curl 库。但是,您确实需要使用交叉编译工具链来为您的 ARM 项目构建该库。如果您拥有成熟的 ARM Linux 发行版,并且可以在其中完成所有开发工作,那么一切都会变得容易得多。
  • 好吧,我不能直接在我的 ARM Linux 发行版上进行开发,我需要通过 CC 工具链工作。哼,如果curl不能用的话我得另找办法了……该死!
【解决方案2】:

这为我解决了问题:

sudo ln -s /usr/include/x86_64-linux-gnu/curl /usr/include/curl

【讨论】:

    【解决方案3】:

    确保您已将 curl.h 安装到默认位置 (LD_LIBRARY_PATH)。如果没有,您可以从GitHub 克隆和安装。

    克隆后,只需使用以下命令:

    ./buildconf
    ./configure
    make
    cd include # ONLY install the include folder (with curl.h, etc)
    make install
    

    你应该完成了。如果您需要进一步的帮助,请查看基本目录中的 GIT-INFO 文件。

    【讨论】:

      【解决方案4】:

      尝试使用它。找到您的 curl.h 文件 - 它应该是您安装 curl '...\include\curl\curl.h' 的位置 所以不要在你的代码中写这个'#include',而是写下所有的路径,比如这里'#include'。 有可能帮到你! 祝你好运)

      【讨论】:

        猜你喜欢
        • 2021-07-27
        • 1970-01-01
        • 2012-07-13
        • 2017-11-13
        • 2014-07-17
        • 1970-01-01
        • 1970-01-01
        • 2021-02-26
        • 1970-01-01
        相关资源
        最近更新 更多