Eclipse Mars.1 c++ 包含完成

Eclipse Mars.1 c++ include completion

我在从 Galileo 迁移到 Mars 版本的 Eclipse 时遇到了很多问题。

我目前正在使用多个项目,每个项目对应于我最终产品的特定层。 每个项目输出多个库。

这是问题所在:

1) 正如我在另一个问题中指出的那样:,如果我在 'project properties -> C++ General -> Paths and Symbols -> Includes' 中添加当前项目,任何 auto-generated 文件都带有尖括号包括预处理器指令

2) 如果我删除 above-added 包含路径,header auto-completion 将无法使用相对于项目根目录的路径(尖括号和引用形式) .带有相对于当前文件路径的引用形式仍然有效。

由于我正在使用多个输出库项目,因此我需要使用尖括号包含样式。

有什么办法可以解决这个问题吗?

据我所知,您在 CDT 的新 class 向导中遇到了限制。 Paths and Symbols -> Includes 应该与您在命令行上所做的完全匹配,以便索引器按预期工作,即为您提供预期完成等。因此,您应该将项目根目录列为索引器的包含目录。

这意味着您的案例中的 class 向导将始终根据该代码中的逻辑使用 <> 作为您的包含。不幸的是,我认为 CDT 的当前代码库中没有任何东西可以同时解决您的两个问题。我猜想让 class 向导按您想要的方式工作的成本被索引器完美工作的损失所抵消。

如果让向导在您的案例中做正确的事情的价值足够高,我建议修复它。 "simple" 更改为 NewClassCodeGenerator.getHeaderIncludeString() 应该可以解决问题。

我终于找到了一个非常简单的解决方法:

使用点1)配置

转到'Window -> Preferences -> C/C++ -> Code Style -> Code Template'

转到 'Files -> C++ Source File' 并编辑测试和源模板并替换:

${includes}

作者:

#include "${file_base}.h"