2011-07-18 55 views
3

由於某些原因,我正在運行的Eclipse CDT的代碼完成(在Ubuntu linux中)無法正常工作。每次我包括一個庫都不會彈出。這可能有什麼原因嗎?Eclipse CDT代碼完成問題

回答

5

僅在源代碼中包含標頭是不夠的。您需要告訴索引器在哪裏查找標題。爲此,您需要轉到項目的屬性,導航至C/C++ General > Paths and Symbols項目。在Includes選項卡中,添加包含GNU C++語言標題的文件夾。如果您的圖書館需要,您可能還需要在Symbols選項卡中定義幾個符號。

現在,您只需等待索引器執行此操作並自動完成即可開始工作。請記住,索引器並非完美且複雜的C++頭文件,比如STL可能會讓它很容易混淆。

+0

謝謝。完成並完成。至於定義這些符號,我來自Java,所以我對此不甚瞭解。我需要什麼來定義新的符號? – zeboidlund

+0

您可能不需要它,但有些標頭可能會根據[預處理器指令](http://en.wikipedia.org/wiki/C_preprocessor)更改其實現。例如,如果一個頭文件有一個'#ifdef FOOBAR'指令,並且索引器沒有遇到相同的'#define FOOBAR'指令,那麼'#ifdef'部分中包含的任何內容都不會被索引。如果有的話,你不需要經常這樣做(可能不應該提到它)。 –

+0

這對C++項目非常適用,但在其本地庫中包含C/C++的Android項目又如何? –

0

也許是因爲找不到標題。您必須在項目的工具設置的「包含」部分中指定包含路徑。其他方法可能會阻止eclipse發現頭文件,即使gcc可以找到它們。