gpt4 book ai didi

parsing - Eclipse CDT 的解析器/索引器是否有 "self-identifying"预处理器 #define 宏?

转载 作者:行者123 更新时间:2023-12-02 10:12:15 24 4
gpt4 key购买 nike

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

所以我想知道预处理器(和索引器?)是否已经定义了一个标准的默认宏来像代码一样“识别”它们自己 - 以省去我的麻烦。

最佳答案

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

Source

编辑以澄清何时在显示错误和警告指示器的上下文中使用它:

CDT 从两个来源获取错误和警告指示器:

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

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

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

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

    这会生成带有注释类型 Codan Errors 的错误和警告指示器和Codan Warnings (“codan”是code 分析的缩写,是产生这些结果的组件)。还有C/C++ Indexer Markers用于在解析过程中产生的语法错误。

    这自然确实使用 __CDT_PARSER__ .

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

编辑为了进一步澄清,索引器使用与 codan 相同的解析器(定义了 __CDT_PARSER__ 等)来构建索引。 (事实上​​,索引器和解析器并不是真正可分离的,因为解析器在解析过程中依赖索引来解析包含的头文件中定义的名称。)

关于parsing - Eclipse CDT 的解析器/索引器是否有 "self-identifying"预处理器 #define 宏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41386945/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com