2013-01-03 23 views
21

可能重複:
Disable Eclipse’s error discovery. (c++11 false positives)關閉月食錯誤(即的arent真正的錯誤)

隨着GCC 4.8 /鏘3.3 C++的支持,以便遙遙領先是Eclipse與語法檢查做(就功能支持而言),Eclipse將許多事情標記爲實際上是有效代碼的錯誤(模板別名恰好是我的主要問題,但也存在其他問題)。當我編譯(或試圖無論如何,有一些問題,請參閱here更多)編譯器碰巧做的工作,它的工作,它的錯誤傳播通過,但它說的代碼確定是仍然強調(分別是紅色和金色蜘蛛的錯誤和警告),這使得很難看到發生了什麼。

有沒有辦法擺脫這些錯誤/警告?

更好的辦法是隻有在編譯嘗試後才能擺脫警告,並且只要代碼的相關部分不會更改,但仍然將其保留爲一般狀態。

(其實最好的是Eclipse的一個插件,支持所有,或至少更多的C++ 11比朱諾做本身,但我似乎無法找到)

+0

嘗試以下鏈接它幫了我一段時間回來, [禁用語法檢查(http://stackoverflow.com/questions/9148417/any-way-to-disable-syntax-checking-對於一個項目) –

+0

@JonnyHenly但我想編譯它 – soandos

+0

我對C++ 11沒有多少經驗,但是可以用Eclipse編輯你的類,然後在編譯使用終端的時候或命令提示符手動運行編譯器。我知道這將是微不足道的,但我認爲這會照顧你的問題 –

回答

17

更新:從我發佈原始答案起已經很長時間了,它已經過時了。我今天雙重檢查(2014年3月15日):在Eclipse開普勒(編譯號20130614-0229)就足夠了

  • 項目添加>屬性> C/C++編譯>設置然後在工具設置標籤GCC C++編譯器>其它-std=c++11標誌,

  • 然後在窗口>首選項> C/C++>構建>設置發現標籤上選擇了CDT GCC內置編譯器設置並將-std=c++11標誌添加到命令獲取編譯器規格。在我的機器,它看起來像這樣改變後:

    ${COMMAND} -E -P -v -dD -std=c++11 "${INPUTS}"

  • 清潔和重建兩個項目索引(項目> C/C++指數>重建)作爲Eclipse的趨向高速緩存錯誤消息並顯示它們,即使它們在更改設置後不見了。

這確實適用於我的機器。如果它不在你的手中,那麼你可能想要給這個:C++11 full support on Eclipse一個鏡頭,雖然我不知道這種方法的正確性,也沒有必要在我的機器上做到這一點。截至2014年3月7日,用戶claim它幫助他們,而上述方法沒有。


原來的職位,現在已經過時:

這些虛假的錯誤來自Codan。整件事情是因爲Codan和編譯器對C++ 有不同的理解Codan是buggy

可能的解決方法

  1. 單擊項目屬性,然後C/C++常規>代碼分析>語法和語義錯誤並取消任何虛假錯誤,你得到。缺點:您很可能最終會禁用大部分錯誤並逐個警告,這非常煩人。

  2. 完全禁用靜態分析C/C++常規>代碼分析>語法和語義錯誤。你不會從Codan那裏得到真正的錯誤,而只能在編譯器後面得到。

它們都不是解決方案,但至少仍然可以使用Eclipse IDE。

+0

看起來不錯。另外,我發現編譯器編寫者在Eclipse甚至可以識別它之前已經實現了這些功能,這讓人覺得很荒謬。 – soandos

+0

(並且很好地抓住了這個謎,我的壞) – soandos

+0

@soandos我發現更荒謬的是他們製作了一個單獨的獨立工具(Codan)來完成編譯器的工作。我希望情況會隨着clang而改變,最後靜態分析工具(clang代替Codan)和編譯器(再次clang)對C++有相同的理解。 – Ali

8

去窗口 - >首選項將分析寫入搜索字段選擇C/C++ - >代碼分析,然後您可以關閉所有內容。