首页 > 解决方案 > C 文件与 C++ 文件的 Eclipse CDT 索引器结果不同

问题描述

我正在使用带有最新 CDT 的 Eclipse 2018-12。编辑器出现奇怪的索引问题。鉴于以下。如果源文件具有“.c”扩展名,则索引器会抱怨无法解析类型“bool”和“false”。如果文件具有“*.cpp”扩展名,则类型被解析。

在这两种情况下,项目都将构建并可以调试。

不确定这是否重要,但我使用 CMake 3.13 生成 Eclipse 项目文件,尽管我尝试手动调整项目设置无济于事。

#include <stdbool.h>
void main(void)
{
    bool success = false;
}

我有一个 C 项目,但我的单元测试使用 GTest,并且是项目中唯一的 .cpp 文件。所有 .c 文件都表现出这种行为。

标签: c++cindexingeclipse-cdt

解决方案


在 Eclipse 论坛中找到了类似的帖子。共识是这可能是索引器/编辑器代码中的错误。

但是有一个解决方法。如果您在项目 Properties -> C/C++ General -> Language Mappings 中有一个包含 .c 和 .cpp 文件的项目,请将“C Source File”的映射添加到“GNU C++”语言。

由于我的构建文件是由 CMake 生成的,我认为这不会影响 Eclipse 构建/调试我的代码的方式。


推荐阅读