Eclipse CDT的解析器/索引器是否具有"自识别"预处理器#define宏?

ein*_*ica 4 parsing eclipse-cdt

我想在Eclipse解析源代码树时只包含一些代码.目前,我在做什么^ H ^ H ^ H ^ H ^ H尝试做的是添加一个自定义预处理器宏 - 使用Eclipse的帮助| 偏好| C/C++ | 建立| 设置发现 - 并-DECLIPSE_BUILTIN在那里插入各种命令行.

所以我想知道是否已经有一个标准的,一个默认的宏,预处理器(和索引器?)定义为"识别"自己这样的代码 - 以免给我带来麻烦.

HC4*_*ica 6

是的,这样的宏存在.是的 __CDT_PARSER__.

资源

编辑以澄清何时在显示错误和警告指示符的情况下使用它:

CDT从两个来源获得错误和警告指标:

  1. 它可以解析构建的输出,识别输出中的错误和警告,并在编辑器中显示它们.

    这些错误和警告指示器具有注释类型ErrorsWarnings(您可以看到不同的注释类型,包括每种类型的图标Preferences | General | Editors | Text Editors | Annotations).

    为此目的解析其输出的构建与生成目标文件的构建相同(并且这些指示符仅在您调用构建时更新,例如via Project | Build Project).因此,__CDT_PARSER__使用这个版本.

  2. 它可以使用自己的解析器分析您的代码,并指出它发现的错误和警告.这与您的编译器无关,并在您键入时发生.

    这将产生错误和警告指示与注释类型Codan ErrorsCodan Warnings("柯顿",简称COD ë 一个 alysis,是产生这些组分).还C/C++ Indexer Markers存在语法错误,这些错误是在解析本身期间产生的.

    当然,这确实有用__CDT_PARSER__.

    请注意,CDT的代码分析不会捕获编译器执行的所有错误(或警告).还有可能产生误报错误或警告,这通常是由于索引器配置与构建配置不匹配而发生的,但有时也会由于CDT本身的错误或缺陷而发生.

编辑为了进一步说明,索引器使用与codan相同的解析器(具有__CDT_PARSER__定义和全部)来构建索引.(事实上​​,索引器和解析器实际上是不可分离的,因为解析器在解析期间依赖索引来解析在包含的头文件中定义的名称.)