2011-07-18 60 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可以找到它们。