2013-04-28 40 views
14

由於我從Eclipse Indigo升級到Juno(在Ubuntu 12.04上),我一直遇到問題,它顯示標準庫的「未解決的包含」錯誤(例如旁邊#include <iostream>#include <vector>等),雖然程序生成並運行良好(使用g ++)。這隻發生在使用Juno創建的新項目中,而不是Indigo的舊項目在我的工作區中。帶有CDT的Eclipse Juno不會添加內置的包含目錄

感謝其他幾個SO問題(見下面的*),我能夠追蹤到問題的根源,因爲項目的屬性> C/C++常規>路徑和符號中缺少「內置值」 >包括標籤:

/usr/include/c++/4.6 
/usr/include/c++/4.6/x86_64-linux-gnu 
/usr/include/c++/4.6/backward 
/usr/lib/gcc/x86_64-linux-gnu/4.6/include 
/usr/lib/gcc/x86_64-linux-gnu/4.6/include-fixed 
/usr/include/x86_64-linux-gnu 
/usr/include 

存在時「顯示內置值」複選框我是沒有這個問題的老靛藍項目打勾,但在我與朱諾創建新的項目不存在的。果然,如果我手動將這七個目錄添加到項目設置的「包含」選項卡中,問題就會消失。但我不想爲每個新創建的項目手動執行此操作。是否有這個原因不再是Juno的默認設置,並且有辦法恢復它嗎?

*其他SO類似問題的問題,我已經諮詢,但並沒有解決我的問題:

+0

這樣的問題也正好與其他的Eclipse版本,例如開普勒,就像你建議的那樣,不僅在升級版本時,而且在其他各種情況下。 – einpoklum 2013-07-16 07:21:21

+0

建議你接受@ languitar的答案,它爲我的作品...... – einpoklum 2013-07-16 07:22:54

回答

12

  • 打開Eclipse Preferences對話框(的Windows |首)。
  • 打開C++ |構建|設置
  • 打開發現選項卡。
  • 選擇內置編譯器設置條目。
  • 清除條目按鈕。

之後蝕應該從編譯器再次請求的默認值。

在Arch Linux的我相依爲命GCC版本更改後要做到這一點,因爲在這種情況下,該版本是在文件夾名稱編碼的默認位置改變,日食不會注意到這一點。

+0

我沒有「發現」選項卡中的C++>構建>設置! – MSH 2015-04-17 07:12:30

+0

事情已經改變了CDT的版本。要麼你的版本太舊了,要麼是在最近的版本中,這個版本已經改變了。 – languitar 2015-04-19 13:50:12

0

FWIW:

我發現,從另一臺計算機導入項目之後,我沒有得到顯示在「包括」我在Project Explorer項目部分的任何東西。爲了解決這個問題,我需要刪除文件夾/workspace/project/.settings/。對我而言,它只有一個文件(language.settings.xml)。

然後一切都恢復正常。