c++ - Eclipse 在子目录中找不到包含文件

标签 c++ eclipse ubuntu eclipse-cdt eclipse-mars

将 c++ Makefile 项目导入 Eclipse 后,我的项目依赖于位于 中的一些库。/usr/include/gazebo-2.2/gazebo .

这些是通过 行包含的。 #include <凉亭/xx/xx.hh> . CMake 查找文件没有问题,不幸的是 Eclipse 确实...

在我的包含文件夹中,文件夹 /usr/include/设置为包含路径。但是它找不到包含文件。

eclipse 是否可以发现文件没有 添加包含目录的完整路径?

最佳答案

Is it possible for eclipse to discover the files without adding the full path to the include directories?



由于您使用的是 Makefile 项目,因此您的 makefile 可能指定了相关的包含路径。 Eclipse 可以使用它的 Build Output Parser 来解决这个问题。设置它的一般方法是:
  • 确保您的 makefile 可以生成包含完整编译器命令调用的输出(例如 gcc -I /usr/include/gazebo-2.2 ... - 因为这是构建输出解析器需要查看的内容),或者可以配置为生成该输出。
  • 确保将 Eclipse 配置为在 Project Properties -> C/C++ Build 中正确调用您的 makefile(根据调用目录和目标名称)。
  • 确保在 Project Properties -> C/C++ General -> Preprocessor Include Paths, Macros etc. -> Providers 选项卡中启用了构建输出解析器。如有必要,适当调整“编译器命令模式”。
  • 从 Eclipse 中执行构建。假设您的构建成功(或至少成功到足以让构建输出包含每个源文件的编译器命令),那么构建输出解析器应该获取诸如包含路径和在命令行上定义的宏之类的信息。在项目资源管理器中,以这种方式为其设置设置的源文件将在图标上用小 Spanner 装饰进行注释。
  • 此时,您的包含应该已解决。您可能需要重新构建索引以使 Eclipse 处理新解析文件的内容。

  • 为了完整起见,由于您提到了 CMake,我会提到还有一些插件可以直接基于 CMakeLists.txt 配置项目的包含路径。 (我不能推荐一个特定的,因为我自己不使用 CMake,但是在 Eclipse Marketplace 中搜索“CMake”应该会给你几个选择。)

    关于c++ - Eclipse 在子目录中找不到包含文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35768257/

    相关文章:

    python - 如何在 Ubuntu 服务器上查找循环 python 脚本

    java - 与Qt的Java套接字连接

    java - Eclipse 插件如何以编程方式传递 Java VM 参数

    android - Android 交叉编译 nfs-utils 包

    javascript - 为什么Eclipse代码在某些项目上没有帮助?

    java - 如何在Android和Google App Engine中使用共享类

    python - 使用 django 配置 memcached

    c++ - vector 中的第一个元素是什么?

    c++ - constexpr运算符重载类模板

    c++ - 使用 protected 继承