Eclipse CDT将头文件中的extern“C”标记为语法错误

时间:2018-05-20 21:04:13

标签: eclipse eclipse-cdt header-files

我有一个C头文件(扩展名为.h)和通常的C ++“包装器”代码:

#ifdef __cplusplus
extern "C" {
#endif
    /* declarations here */
#ifdef __cplusplus
}
#endif

现在Eclipse CDT(Oxygen)将extern "C"中包含的所有内容标记为语法错误(副作用是内部的任何声明都不会被索引)。该项目从Eclipse Luna升级(对此没有任何问题),并使用CMake构建而没有任何问题。

其他头文件具有相同的extern "C"构造,并被Eclipse接受。有问题的文件似乎没有任何不匹配的大括号。

这里有什么问题,我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

我收到了对我的错误的回复。

根本原因显然是我最初使用

从CMake生成Eclipse项目文件
cmake -G "Eclipse CDT4 - Unix Makefiles" ~/src/foobar

此功能似乎没有维护,过去曾造成很多麻烦。根据他们的建议,我尝试安装 cmake4eclipse (在Eclipse Marketplace上可用)并从头开始导入项目。

(如果重复使用相同的工作区并维护项目名称,甚至保留了构建配置 - 您可能只需要更新路径。)

转移到cmake4eclipse还消除了之前设置的一些其他限制,并且似乎修复了C文件一遍又一遍地退出索引的另一个错误。