我有一个C头文件(扩展名为.h
)和通常的C ++“包装器”代码:
#ifdef __cplusplus
extern "C" {
#endif
/* declarations here */
#ifdef __cplusplus
}
#endif
现在Eclipse CDT(Oxygen)将extern "C"
中包含的所有内容标记为语法错误(副作用是内部的任何声明都不会被索引)。该项目从Eclipse Luna升级(对此没有任何问题),并使用CMake构建而没有任何问题。
其他头文件具有相同的extern "C"
构造,并被Eclipse接受。有问题的文件似乎没有任何不匹配的大括号。
这里有什么问题,我该如何解决这个问题?
答案 0 :(得分:0)
我收到了对我的错误的回复。
根本原因显然是我最初使用
从CMake生成Eclipse项目文件cmake -G "Eclipse CDT4 - Unix Makefiles" ~/src/foobar
此功能似乎没有维护,过去曾造成很多麻烦。根据他们的建议,我尝试安装 cmake4eclipse (在Eclipse Marketplace上可用)并从头开始导入项目。
(如果重复使用相同的工作区并维护项目名称,甚至保留了构建配置 - 您可能只需要更新路径。)
转移到cmake4eclipse还消除了之前设置的一些其他限制,并且似乎修复了C文件一遍又一遍地退出索引的另一个错误。