【问题标题】:Eclipse Mars.1 c++ include completionEclipse Mars.1 c++ 包含完成
【发布时间】:2016-05-19 18:58:40
【问题描述】:

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

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

问题来了:

1) 正如我在另一个问题中指出的那样:Eclipse c++ class generation formating,如果我在“项目属性 -> C++ 常规 -> 路径和符号 -> 包含”中添加当前项目,任何自动生成的文件都带有尖括号包括预处理指令

2) 如果我删除了上面添加的包含路径,标头自动完成功能将不适用于相对于项目根目录的路径(尖括号和引号形式)。带有相对于当前文件的路径的引用表单仍然有效。

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

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

【问题讨论】:

  • (感谢您将完整的详细信息作为一个新问题发布,SO 的格式使得仅在 cmets 中很难询问后续 Qs。)

标签: eclipse-cdt


【解决方案1】:

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

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

如果让向导在您的情况下做正确的事情的价值足够高,我建议修复它。对NewClassCodeGenerator.getHeaderIncludeString() 的“简单”更改应该可以解决问题。

【讨论】:

    【解决方案2】:

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

    使用点1)配置

    转到“窗口 -> 首选项 -> C/C++ -> 代码样式 -> 代码模板”

    转到“文件 -> C++ 源文件”并编辑测试和源模板并替换:

    ${includes}
    

    作者:

    #include "${file_base}.h"
    

    【讨论】:

      猜你喜欢
      • 2016-02-16
      • 2016-04-10
      • 1970-01-01
      • 2011-01-24
      • 1970-01-01
      • 2014-03-30
      • 2015-12-19
      • 2016-04-18
      • 2014-02-08
      相关资源
      最近更新 更多