【问题标题】:Eclipse CDT indexing not working to find declarations within the projectEclipse CDT 索引无法在项目中查找声明
【发布时间】:2012-02-23 01:55:42
【问题描述】:

我在新安装的 Ubuntu 上安装了 Eclipse 和 CDT 插件。索引设置为推荐的“快速索引”(“完整索引”似乎有边际差异)。

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

例如,我有 2 个文件,

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

我看不到任何class 的声明或file.cpp 中显示的位于file.h 中的变量。即使在#include"file.h" 上按'F3',我也无法转到file.h

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

项目 -> 属性 -> C/C++ 常规 -> 路径和符号 -> 库和路径 -> 添加“/Project/X/Y/include/file.h”(使用 '工作区”和“文件系统”选项卡)

但仍然没有运气。我已经在互联网和 SO 上进行了足够的搜索,但找不到任何有用的东西。请注意,到目前为止,我仅将 eclipse 用于代码浏览,而不是用于构建代码。

【问题讨论】:

    标签: eclipse indexing eclipse-cdt include-path


    【解决方案1】:

    好的,开始工作了。实际上,我在Paths and Symbols 中包含的任何包含路径都是多余的,它们没有区别,因为Workspace/Project 下的所有内容都将被编入索引。

    这个解决方案很奇怪,它与可扩展性有关,我是从this link 了解到的。在 Eclipse 中转到,

    Window -> Preferences -> C/C++ -> Editor -> Scalability -> "Enable scaling mode when ..."

    设置一个大数字,例如500000,然后按“确定”。问题解决了!就我而言,实际设置值为5000,而我看到的源文件是16k+ 行。

    【讨论】:

    • 当你有一个那么大的 C++ 文件时,这是一个不好的迹象。尝试重构一下以帮助您保持理智。
    • @Captain Lepton:或者这只是表明您正在使用 SWIG 包装器(或其他自动生成的代码),或硬件设备驱动程序标头,或sqlite.h,或者......你明白了.这本身并不是一个坏信号。
    • 多年来我一直在使用自动生成的文件,包括 SWIG 和各种自制系统,并在我的上一份工作中编写了设备驱动程序。这些都创建不能分解成更易于管理的逻辑单元的单一文件
    猜你喜欢
    • 2012-04-19
    • 1970-01-01
    • 2010-09-23
    • 1970-01-01
    • 2014-01-11
    • 2010-09-21
    • 2012-01-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多