使Eclipse CDT预先包含头文件,以避免错误:“符号<符号>无法解析”</symbol>

时间:2014-09-03 12:54:51

标签: c eclipse eclipse-cdt

有没有办法让Eclipse编辑器假设已经包含了一个特定的C头文件,而不必明确#include它?

例如,我们如何实现:

#include "common_type_defs.h"
#include "special_type_defs.h" // Don't want to have to mention this header file

main()
{
  common_type var1;
  special_type var2;
  .....
}

仅写作:

#include "common_type_def.h"

main()
{
  common_type var1;
  special_type var2; // Eclipse editor: "Symbol 'special_type' could not be resolved"
  .....
}

没有得到Eclipse编辑器注释错误:“无法解析符号'special_type'。”

原因是,该项目使用自定义脚本化构建系统。特殊的头文件由构建系统自动添加,从不同的库中选择。所以构建成功。

我已将特殊标题文件夹添加到项目的包含路径中。这允许我按[F3]并跳转到“special_type”的定义。只是编辑器标记错误。

我不想让错误沉默,因为我想抓住真正的错误。

有什么建议吗?

3 个答案:

答案 0 :(得分:1)

在构建系统中执行其他定义,然后:

#ifndef CUSTOMBUILDER
#include "special_type_defs.h" // Don't want to have to mention this header file
#endif

答案 1 :(得分:1)

转到:
项目属性 C / C ++常规预处理器包含路径,宏等条目 GNU C
选择 CDT用户设置条目,然后单击添加按钮。选择包含文件,然后在此处输入预处理器预包含文件。

应用并重建索引器。

My pre-included ppdefs.h file

  

我正在使用Oxygen.1a Release(4.7.1a)

答案 2 :(得分:0)

我最终为构建系统的每个构建选项创建了不同的&#34;构建配置&#34;。在那里,我可以根据需要添加后台头文件。

一个缺点是我必须维护不同的构建配置来镜像构建系统:当新的头文件添加到构建系统时,还必须将相同的文件添加到eclipse构建配置中。因此,此解决方案将不适用于大型团队项目,因为您可能很容易错过一两个文件更改。但它适用于小型团队和不经常的变化。