Eclipse CDT索引不能在项目中查找声明

iam*_*ind 6 eclipse indexing eclipse-cdt include-path

我在新安装的Ubuntu上安装了Eclipse和CDT插件.索引设置为"快速索引"(建议使用"快速索引")("完全索引"似乎具有边际差异).

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

例如,我有2个文件,

/home/myself/Workspace/Project/X/Y/include/file.h
/home/myself/Workspace/Project/X/src/file.cpp
Run Code Online (Sandbox Code Playgroud)

我无法看到任何class显示在file.cpp其中的任何或变量的声明file.h.即使按'F3'#include"file.h",我不能去file.h.

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

项目 - >属性 - > C/C++常规 - >路径和符号 - >库和路径 - >添加"/Project/X/Y/include/file.h"(使用'Workspace'和'FileSystem'选项卡)

但仍然没有运气.我已经在互联网和SO上做了足够的搜索,但找不到任何有用的东西.请注意,我使用eclipse仅用于代码浏览,而不是用于构建现在的代码.

iam*_*ind 14

好的,搞定了.实际上,我所包含的任何包含路径Paths and Symbols都是多余的,它们没有任何区别,因为所有下面的内容都Workspace/Project将被编入索引.

解决方案非常奇怪,它与可伸缩性有关,我从这个链接中了解到了这一点.在Eclipse中去,

窗口 - >首选项 - > C/C++ - >编辑器 - >可伸缩性 - >"在......时启用可伸缩性模式"

设置一个巨大的数字,500000然后按"确定".问题解决了!对于我的情况,实际设置值是5000,我看到的源文件是16k+行.

  • @Captain Lepton:或者它只是一个标志,你正在使用SWIG包装器(或其他自动生成的代码),或硬件设备驱动程序头,或`sqlite.h`,或者......你明白了.这不是一个坏兆头_per se_. (3认同)