Eclipse CDT 符号"X"的通用解决方案无法解析?

Generic solution to Eclipse CDT's symbol 'X' could not be resolved?

本文关键字:解决方案 符号 CDT Eclipse      更新时间:2023-10-16

我有一个项目与c++和C文件。代码编译并正确运行,但我需要消除以下错误:

符号"ERANGE"无法解析

我能够用这两个文件(Ubuntu上最新的x64 eclipse Juno)复制它:

main.h:

#ifndef MAIN_H_
#define MAIN_H_
extern "C" {
#include <errno.h>
}
#endif /* MAIN_H_ */

main.cpp:

#include <cerrno>
#include <cassert>
#include "main.h"
int main(int argc, char * argv[]) {
    assert(errno != ERANGE); // <-- CDT ERROR here
    return 0; }

在ERANGE上正确地执行打开声明将我带到/usr/include/asm-generic/errno-base.h文件。

以下类似问题的解决方法不起作用:

  • 设置Indexer ->使用活动构建配置
  • 手动添加ERANGE符号到项目路径和符号
  • 将main.cpp添加到首选项-> C/c++ ->代码分析->符号未解析->自定义选定…->排除模式

唯一有效的解决方案是禁用符号不能完全解决错误,但这会导致我错过真正的问题。

编辑:

CDT bug归档https://bugs.eclipse.org/bugs/show_bug.cgi?id=404017

看起来像是Eclipse CDT代码分析工具(codan)中的一个bug。我建议在这里提交bug报告。