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

时间:2016-12-29 20:46:14

标签: parsing eclipse-cdt

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

所以我想知道是否已经存在一个标准的,默认的宏,预处理器(和索引器?)定义为像代码一样“识别”它们 - 以免给我带来麻烦。

1 个答案:

答案 0 :(得分:6)

是的,这样的宏存在。它是__CDT_PARSER__

Source

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

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

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

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

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

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

    这会生成错误和警告指示符,其注释类型为Codan ErrorsCodan Warnings(“codan”, cod e a alysis的缩写,是产生这些的组件)。语法错误也有C/C++ Indexer Markers,这些错误是在解析过程中产生的。

    当然,确实使用__CDT_PARSER__

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

    < / LI>

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