4
我有一个C++和C文件的项目。该代码编译并运行正常,但我需要摆脱以下错误:Eclipse CDT的符号'X'的通用解决方案无法解析?
Symbol 'ERANGE' could not be resolved
我能够与这两个文件(最新的x64 Elipse朱诺在Ubuntu)重现它:
为主。 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; }
做打开Declar ERANGE上的正确将我带入/usr/include/asm-generic/errno-base.h文件。
以下的解决方法,以类似的问题没有工作:
- 设置索引 - >使用积极构建配置
- 手动添加ERANGE符号项目路径和符号
- 添加主.cpp至首选项 - > C/C++ - >代码分析 - >符号未解析 - >自定义选定... - >范围 - >排除模式
将工作的唯一解决方案是禁用符号未完全解决错误,但这会导致我错过真正的问题。
编辑: CDT的bug提交https://bugs.eclipse.org/bugs/show_bug.cgi?id=404017
我不知道这是否会对您有所帮助,但我发现CDT索引器并不总是正确或可靠地进行更新。当事情不同步时,右键单击项目并选择Index |清新所有文件。这通常为我解决这些类型的问题。 – 2013-03-19 16:48:43