Eclipse CDT索引器C文件的结果与C ++文件的结果不同

gem*_*ode 5 c c++ indexing eclipse-cdt

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

在这两种情况下,项目都将生成并且可以调试。

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

#include <stdbool.h>
void main(void)
{
    bool success = false;
}
Run Code Online (Sandbox Code Playgroud)

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

gem*_*ode 0

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

不过,有一个解决方案。如果您在项目属性 -> C/C++ 常规 -> 语言映射中有一个包含 .c 和 .cpp 文件的项目,请将“C 源文件”的映射添加到“GNU C++”语言。

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