2011-09-01 44 views
22

我無法讓Eclipse爲我的源代碼編制索引。我目前在Windows XP上使用Eclipse Helios。我怎樣才能讓Eclipse爲包含多個「make項目」的整個C/C++源代碼樹建立索引?

我有一個名爲src的目錄。在它內部,我有一堆dirs,像這樣:

 
src 
    -include (common headers) 
    -lib 
    -libIO (source code for this library) 
    -libGUI (source code for this library) 
    -pgms 
    -pgm1 (source code and headers for this pgm) 
    -pgm2 (source code and headers for this pgm) 

每個葉子都有它自己的Makefile。 src中沒有頂級Makefile。 pgm1可以包含來自include和lib/libIO和lib/libGUI的文件。

基本上,我希望Eclipse能夠索引我的整個src目錄,而不必爲我的樹中的每個葉子設置一個C/C++項目。我似乎無法找到一種方法來實現這一點。

這是我的症狀;我想要解決的:

當PGM1目錄編輯源,它引用了我的include目錄的頭文件中聲明,並在LIB/libIO發現源文件中定義的功能。

然而,當我按下F3得到一個函數的聲明,Eclipse的說「索引找不到符號‘X’」。我似乎無法讓Eclipse找到頭文件聲明或我的光標下方法的源代碼定義(如Java模塊完美無缺)。這可能嗎?

+0

我知道這不是一個答案,但你可能想Google「遞歸考慮有害」。 :-) –

+2

如果我有權重構整個源代碼樹,我可能會,但是有時當您爲其他人工作時,這不是一個選項。另外,我不認爲這是Eclipse的無理要求! :) – Jay

+4

您是否已將每個包含標題的目錄添加到項目的包含標題設置?您還應該仔細檢查Indexer和Project設置,以確保您不會忽略任何內容。然後嘗試重建索引(右鍵單擊,索引,重建)。 – Ioan

回答

4

我設法解決這個感謝這裏的評論....我最終重新創建我的項目。我使用Import方法從CVS下載項目,並告訴它使用New Project嚮導來執行此操作。當我得到新項目對話框時,我告訴它這是一個C++項目,現在索引工作正常。

我還是希望我能索引文件,而無需特定的項目類型重視它,但至少我找到了答案。

感謝您的幫助。

+1

索引與語法高亮不同。語法突出顯示很簡單,因爲它僅依賴於關鍵字。索引需要知道如何編譯/執行源以正確工作。 – Ioan

0

請嘗試以下操作(我的項目設置不同,所以我不確定這適用於您)。

進入屬性 - > C/C++常規 - >路徑和符號 - >源位置。

你看到你的源文件夾嗎?

我觀察此行爲: 當我添加源文件夾,然後從構建中排除,它從上面的列表中消失。之後,該文件夾不再編入索引。將它重新添加到「源位置」解決了問題:該文件夾現在已編入索引;仍然被排除在構建之外(如預期);在源位置之間可見。

我相信這是一個錯誤 - 不包括從生成源文件夾不應該從源位置列表中刪除。

+0

該選項僅在C項目中可用,並且此源代碼樹包含C和Java代碼。 – Jay

25

我的問題與OP完全相同,但由於某些原因,我在Eclipse中使用的菜單(Helios Service Release 2)不是「轉至屬性 - > C/C++常規 - >路徑和符號 - >源位置」。 」。

我解決了該問題的方法是:

    在C/C++視圖
  • ,頂部項目名稱上點擊右鍵;
  • 在菜單中選擇New-> C++ Project;
  • 在出現的窗口中,選擇Convert to,然後選擇C++項目;
  • 點擊確定關閉窗口。

Eclipse將立即開始索引。根據源代碼樹的大小,可能需要一段時間,但在此之後,您將最終使索引工作。

+4

這對我有效,但請注意,該選項從該窗口移動到項目本身的上下文菜單中,至少在Eclipse Kepler中。所以我做了(在C/C++視圖中)右鍵單擊項目,選擇'New' - >'Convert to C/C++ Project(Add C/C++ Nature)'。我選擇了'Executable'和'Linux GCC'。我現在可以瀏覽我的代碼。 –

10

我面臨類似的情況。我通過這種方式解決了這個問題:右鍵單擊項目中的項目View-->select Index-->rebuild.

2

退出Eclipse。在工作區中,轉到「.metadata/.plugins/org.eclipse.cdt.core」並刪除那裏的所有內容。

在Project Explorer面板
+0

搜索2小時後,這爲我工作。謝謝你:) –

+0

你的歡迎夥伴 – CppChase

3

,右鍵單擊該項目要重新建立索引,然後選擇指數,然後選擇要

0

行動在CooCox IDE(Eclipse的+ GCC)的問題是由從去解決文件菜單 編輯>首選項> C/C++ /索引器>將索引器的構建配置設置爲活動構建配置並重建項目(Ctrl R)。

0

如果項目已經轉換爲C/C++,但仍然索引不工作,您可以右鍵單擊項目和索引並重建。該項目將立即開始索引。

1

當我們有一個龐大的項目,大量的文件,更重要的是有很多不同的構建選項時,對不同標誌下的文件和變量進行索引總是很複雜。我更喜歡使用Indexer選項來幫助我瀏覽整個代碼。 您可以找到它:項目屬性> C/C++常規/索引器。

您可以選擇「啓用項目特定設置」

然後,它是由你來選擇你想要的選項爲您的項目。 對於特定版本,我們可以選擇「使用主動版本配置」,以便只考慮構建腳本使用的文件和MACROS。 或索引整個項目中的所有源文件。

0

我使用

Eclipse IDE中的C/C++ Linux開發人員

版本:赫利俄斯服務版本2 版本ID:20110218-0911

我跟着上面,另外我有建議使用項目屬性標記所有引用的項目(在工作空間中) - >項目引用

1

我遇到Eclipse Eclipse的索引器時遇到了問題,當出現未解決的問題時d類聲明中的聲明 - 似乎索引器跳過索引該類的其餘部分,並且所有對它的引用都被索引器顯示爲未解析。

解決方案:刪除未解決的朋友聲明(在我的情況下,它是不再需要的舊代碼)。

0

以下在Eclipse Neon中爲我工作: 新建項目 - > C/C++ - >使用現有代碼的Makefile項目 - >下一步。然後導航到代碼並完成項目創建。索引自動啓動。

0

我使用Eclipse的霓虹燈3,這裏是爲我工作的解決方案:

  • 轉到文件
  • 轉換爲C/C++自動工具項目 然後選擇你的項目和完成。

完成索引可能需要一些時間,這取決於您的項目大小。

相關問題