2012-07-06 289 views
9

我在Ubuntu 3.5.2 Galileo中使用CDT。Eclipse索引不起作用

我的eclipse的索引器有時無法正常工作。我的意思是當我點擊一個功能它說Could not find symbol in index。此外,F3按鈕單擊會導致相同的錯誤消息。實際上大多數地方它不工作,並在很少的地方工作。

我已經看到一些其他版本的Eclipse,其中在文件菜單下列出了用於索引的菜單項。像File-> Indexer-> Rebuild ....但在我的文件菜單中沒有Indexer的這樣的菜單項。

唯一的方法是使用Eclipse的其他版本還是缺少一些東西?任何關於此的指針都會有所幫助。

+0

[Clean Eclipse Index,它與代碼不同步]的可能重複(http://stackoverflow.com/questions/3008293/clean-eclipse-index-it-is-out-of-sync-with-代碼) – 2017-03-09 06:31:27

回答

7

要添加包含代碼來解析路徑,請按照下列步驟操作:
1.右鍵單擊該項目
2.選擇屬性
3.轉到C/C++通用
4.前往路徑和符號
5.如果路徑丟失,請添加路徑。

要重新分析代碼,請按照下列步驟操作:
1.右鍵單擊該項目
2.選擇指數
3.重建

如果這也不行,那你是出運氣。 C++是非常難以解析的語言。

11

在我的情況沒有奏效,最後我做了以下內容:

1) Close the project 
2) Delete the project(do not check from disk option) 
3) create new project with existing code(use the deleted project path) 
4) Successfully indexed my c++ code 
+1

不幸的是,即使是最新的MARS eclipse也是唯一的解決方案... – 2015-07-23 13:03:30

+0

完美地工作。 – Slot 2015-08-06 08:31:48

0

我相信你可以通過運行清除指數:

rm .metadata/.plugins/org.eclipse.jdt.core/*.index 

,然後重新啓動Eclipse的。它會重建它的索引。

這對我來說是一個Java項目的工作,但我想它是所有(大多數?)項目類型的相同索引。

1

如果您的索引器被卡住並且無限時間掛起,您可以從.metadata刪除項目的索引器相關文件。確保eclipse不在同時運行。

.metadata目錄位於工作區路徑中的隱藏文件夾中。

在那裏,你可以瀏覽到:

<workspace_path>/.metadata/.plugins/org.eclipse.core.runtime/.settings/

裏面的.settings/目錄下有哪些存儲每個項目的喜好單獨.prefs文件。

例如:org.eclipse.cdt.core.prj-test-project.prefs存儲項目測試項目

打開此文件,文本編輯器,並刪除開始indexer的所有行的偏好。這將重置此特定項目的索引器設置爲默認值。

或者,您可以刪除所有從indexer開始的所有行,從org.eclipse.cdt.core.prefs;這樣做會重置整個工作區的索引器設置。

+0

這實際上工作 – 2017-10-31 17:36:56

0

您可以嘗試重建索引。 右鍵單擊項目視圖中的項目。然後Index -> Rebuild

0

這是我在Project->C++ Index->Rebuild失敗後使用的解決方案。這一招避免刪除當前項目:

1) Copy the current project (Right click->Copy from Project Explorer) 
2) Paste it (Right click->Paste from Project Explorer) and give the copy another name 
3) The indexer should now start and index both projects 
4) When indexation is complete, you can delete the copy 

PS:請確保您的原始項目是一個實際的C++項目或這顯然是不行的。