2013-03-19 83 views
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

+0

我不知道這是否會對您有所幫助,但我發現CDT索引器並不總是正確或可靠地進行更新。當事情不同步時,右鍵單擊項目並選擇Index |清新所有文件。這通常爲我解決這些類型的問題。 – 2013-03-19 16:48:43

回答

0

看起來像在Eclipse CDT代碼分析工具(codan)的錯誤。我建議提交一個錯誤報告here