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