代码之家  ›  专栏  ›  技术社区  ›  user149408

EclipseCDT将头文件中的外部“c”标记为语法错误

  •  0
  • user149408  · 技术社区  · 6 年前

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

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

    现在EclipseCDT(氧气)标记了所有封闭在 extern "C" 作为语法错误(附带的副作用是里面的声明都没有被索引)。该项目是从EclipseLuna(它与此没有任何问题)升级而来的,并且使用cmake构建,没有任何问题。

    其他头文件相同 外部“C” 构造并被Eclipse接受。有问题的文件似乎也没有任何不匹配的大括号。

    这里有什么问题,我该怎么解决?

    1 回复  |  直到 6 年前
        1
  •  0
  •   user149408    6 年前

    我的错误得到了答复。

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

    cmake -G "Eclipse CDT4 - Unix Makefiles" ~/src/foobar
    

    这个功能似乎是未维护的,在过去已经引起了很多麻烦。根据他们的建议,我试着安装 cmake4eclipse(日食) (在EclipseMarketplace上可用)并从头导入项目。

    (如果重用同一个工作区并维护项目名称,则即使保留了构建配置,也可能只需要更新路径。)

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