【问题标题】:Clean Eclipse Index, it is out of sync with code清理 Eclipse 索引,它与代码不同步
【发布时间】:2011-03-01 19:11:42
【问题描述】:

我通过 Linux 上的链接资源将 Eclipse 与 C++ 代码结合使用。代码分析索引似乎已损坏(Goto 定义使光标靠近定义,但不在定义上)刷新资源并不能修复它,重新启动 Eclipse 也不能修复它。

有没有办法刷新索引并重建它?

【问题讨论】:

    标签: c++ eclipse eclipse-cdt


    【解决方案1】:

    右键单击您的项目,进入“索引”子菜单,然后选择“重建”、“使用修改后的文件更新”或“刷新所有文件”。

    我不知道这三个选项之间的区别,但是“使用修改后的文件更新”或“刷新所有文件”之一通常会为我修复它。

    另外,我确定您已经这样做了,但请确保您运行的是最新版本的 Eclipse CDT。当前版本的索引似乎比以前的版本可靠得多。

    【讨论】:

    • 在过去,我有时也不得不关闭并重新打开项目,以使其能够接受。
    • “刷新所有文件”运行良好。 “重建”没有帮助。
    • 更应该重视“新鲜”。在几个地方将 c++11 更改为 c++14 后,我重建了几次,这样__cplusplus__ 将是 201300,所以反过来我可以拥有 make_unique。在所有这些重建之后,我需要清新是我需要的步骤。
    【解决方案2】:

    来自http://dev.eclipse.org/mhonarc/lists/cdt-dev/msg10390.html,“重建”、“使用修改后的文件更新”或“刷新所有文件”之间的区别:

    重建:仅适用于整个项目。清除索引和索引 从头开始的文件。取消后,它会给您留下空白或 部分索引。

    使用修改后的文件更新:适用于资源 选择。检查单个文件是否时间戳或 扫描仪配置已更改并更新已更改的索引 文件。

    刷新所有文件:适用于资源选择。更新 索引中的选定文件。索引没有被清除,是安全的 取消操作。

    【讨论】:

    • 虽然这不是问题的答案,但这仍然很有帮助。
    • 此描述符合我的预期,但与我从 Eclipse 的行为中实际看到的不符。对我来说,“刷新所有文件”解决了这个问题,但“重建”没有。如果“重建”真的删除了索引并从头开始重新构建,这没有任何意义。
    【解决方案3】:

    转到您的项目properties -> C++ general -> Indexer

    • 使用'project specific settings' 执行此操作,
      (或'Configure Workspace Settings...')。
    • 取消选择'Enable Indexer'点击Apply
    • 选择'Enable Indexer'点击Apply

    这应该彻底清除并重建索引。

    【讨论】:

    • 谢谢。这有帮助。此外,我需要选择“构建中未包含的索引源文件”选项。这是因为我的构建环境/工具链没有集成在 eclipse 中(即 eclipse 仅用于浏览和编辑代码,而不用于构建项目)。
    【解决方案4】:

    以上方法都不适合我(Eclipse Indigo),索引仍然损坏并且拒绝正确重建。直到应用这个:

    http://slsam2.blogspot.com/2012/02/eclipse-cdt-index-not-working.html

    链接帖子的关键是:

    Eclipse 不再将您的项目视为 C++ 项目。选择菜单File/New/Convert to a C/C++ project。索引源代码需要一些时间。

    我仍然想知道 Eclipse 怎么会像那样不受控制地朝自己的脚开枪。我怀疑安装额外的软件包会触发它。也许在我的情况下支持 JavaScript。

    【讨论】:

    • 非常感谢不仅发布链接,还保存相关信息以备链接再次中断时使用。这应该是 StackOverflow 答案的要求。
    • 只有这个适用于我的 Eclipse 版本:2019-03 (4.11.0)。谢谢
    • 这是唯一对我有用的解决方案 (4.12.0)。
    【解决方案5】:

    删除 only .metadata.plugins\org.eclipse.cdt.core 下的 .pdom 文件有帮助,我在将 Neon.2 升级到 Neon 后搞砸了索引器.3 这似乎解决了问题。 (此评论在上面已经存在,但不允许在上面确认)。

    【讨论】:

    • 这对我有用!我在基于 eclipse 的 IDE 中遇到了一个奇怪的错误,导致 eclipse 在启动时挂起并占用了大量内存(但我能够判断索引已损坏),所以 Josh 的回答对我来说并不实用。跨度>
    【解决方案6】:

    您是否尝试将 -clean 添加到 eclipse 可执行文件的命令行中?

    【讨论】:

      【解决方案7】:

      Eclipse 不再将您的项目视为 C++ 项目。选择菜单文件/新建/转换为 C/C++ 项目。索引源代码需要一段时间。为我工作

      【讨论】:

      • 请在 Pavel 的回答中发表评论,而不是重复解决方案。
      【解决方案8】:

      我发现我将全局索引器设置为“使用项目索引器设置中指定的构建配置”, 并且项目的索引器设置为不使用项目特定的索引器设置。 无论如何,无论我选择哪种配置,它都为索引器使用相同的固定配置。 修复: 窗口首选项、C/C++、索引器。在“索引器的构建配置”部分中选择“使用活动构建配置”。

      快乐的日子。

      【讨论】:

        【解决方案9】:

        我开始尝试 Josh Kelleys 和 mmmmms 的答案,但没有任何运气,但我最终通过检查我的包含路径来修复它。

        查看它们的一种方法是在项目资源管理器中,展开项目并且应该有一个条目“包含”。在其中,检查每个包含路径上是否有一个小的黄色警告三角形。如果存在该三角形,则 eclipse 很可能无法识别路径。

        通过在项目浏览器中右键单击“您的项目”来编辑包含路径,然后选择“属性”--> C/C++ 常规--> 路径和符号--> 包含。 em>

        我看到了三种语言选项,Assembly、Gnu C、Gnu C++。在开始添加路径之前选择正确的路径(可能是 Gnu C++)。添加所有路径后,-->Apply --> Ok 并根据要求重建索引。

        我错误的工作区路径看起来像 MyProject/MyProject/folder,而它应该是 MyProject/folder

        对我来说,“问题”视图总是更新缓慢,即使在重建索引之后也是如此。要确保错误仍然存​​在,请双击问题条目,以便 eclipse 打开/重新加载有问题的文件。这对我来说似乎经常需要更新“问题”视图。

        我真的不知道是eclipse还是我的scm搞砸了。无论如何,希望它可以帮助某人!

        我使用 Luna 并使用外部 makefile 进行构建。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2021-12-02
          • 2013-10-24
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-12-06
          • 1970-01-01
          相关资源
          最近更新 更多