2012-01-31 55 views
6

我已经安装了Eclipse CDT &插件上新安装了Ubuntu中找到的声明。索引设置为“快速索引”,建议使用(“全索引”似乎有边际差异)。Eclipse CDT的索引不工作的项目

在如此多的地方,如果我按'F3'('show declaration')在任何class名称或包含文件名称上,游标保持静止不动,并且不会导致声明。但是,它适用于标准文件和符号,如stdio.h,std::vector等。

例如,我有2个文件,

/home/myself/Workspace/Project/X/Y/include/file.h 
/home/myself/Workspace/Project/X/src/file.cpp 

我不能看到file.cpp显示任何class或变量被内部居住的file.h任何声明。即使在#include"file.h"上按'F3',我也无法去file.h

Eclipse工作在C++项目在Project文件夹中创建Workspace文件夹中创建。为了存储包含路径,我在Eclipse中遵循了这个过程:

Project - > Properties - > C/C++ General - > Paths and Symbols - > Library and Paths - > Add“/ Project/X/Y /包括/ file.h”(使用‘工作区’和‘文件系统’选项卡两者)

但仍没有运气。我在互联网上做了足够的搜索,所以找不到任何有用的东西。请注意,我只使用eclipse进行代码浏览,而不是现在构建代码。

回答

14

好,我知道它的工作。其实无论包括路径我已经包含在Paths and Symbols是多余的,他们有什么区别应有尽有下Workspace/Project将被索引。

解决方案是非常奇怪的,它与可伸缩性,我从this link知道。在Eclipse中去,

窗口 - >首选项 - > C/C++ - >编辑 - >可扩展性 - > “启用伸缩性模式时......”

设置一个庞大的数字,例如作为500000并按下“确定”。问题解决了!对于我的情况,实际设置值为5000,我看到的源文件是16k+行。

+1

当你有一个很大的C++文件时,这是一个不好的迹象。 尝试重构一点,以帮助您理智。 – 2012-10-16 17:10:40

+2

谢谢,它帮助! – StarDust 2014-02-14 20:04:01

+3

@Captain轻子:或者它只是你使用SWIG包装(或其他自动生成的代码),或硬件设备驱动程序的标题,或'sqlite.h'一个标志,或者......你明白了吧。这不是一个坏的迹象。 – Tibo 2015-05-04 10:22:33