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

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

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

这些通过 #include 行包含。 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 来获取它。设置它的一般方法是:

  1. 确保您的 makefile 可以生成包含完整编译器命令调用的输出(例如 gcc -I/usr/include/gazebo-2.2 ... - 因为这是构建输出解析器所需要的看),或者可以配置为产生该输出。
  2. 确保 Eclipse 配置为在项目属性 -> C/C++ 构建中正确调用您的 makefile(根据调用目录和目标名称)。
  3. 确保在项目属性 -> C/C++ 常规 -> 预处理器包括路径、宏等 -> 提供程序选项卡中启用构建输出解析器。如有必要,适当调整“编译器命令模式”。
  4. 在 Eclipse 中执行构建。假设您的构建成功(或者至少成功到足以让构建输出包含每个源文件的编译器命令),构建输出解析器应该获取信息,例如在命令行上定义的包含路径和宏。在 Project Explorer 中,以这种方式选择设置的源文件将在图标上用小 Spanner 装饰进行注释。
  5. 此时,您的包含应该已解决。您可能需要重新构建索引以使 Eclipse 处理新解析文件的内容。

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

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

相关文章:

c++ - 迭代器的验证

android - 在没有eclipse的情况下将android项目编译为apk

apache - Railo,XAMPP : Where is the apache. ctl 还是 apache2.ctl?

c++ - 将 std::string 转换为使用 windows-1256 编码的 jstring

c++ - 经过良好测试的 C/C++ 无锁队列?

c++ - 如何根据事件顺序编写游戏

android - 在 eclipse 中使用 egit 导入 android 依赖项目的最佳 git 结构

java - 是否有按修饰符对成员进行排序的 Eclipse 快捷方式?

apache - 在 Ubuntu 12.04 中启动 apache 失败

python - 从 Windows 访问 ubuntu 文件(安装在 virtualbox 中)