清理Eclipse索引,它与代码不同步

Vin*_*eib 61 c++ eclipse eclipse-cdt

我通过Linux上的链接资源使用Eclipse和C++代码.代码分析索引似乎已损坏(Goto定义使光标接近但未定义)刷新资源无法修复它,也不会重新启动Eclipse.

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

Jos*_*ley 76

右键单击您的项目,进入Index子菜单,然后选择"Rebuild","Update with modified files"或"Freshen all files".

我不知道这三个选项之间的区别,但"更新修改过的文件"或"刷新所有文件"之一通常会为我修复它.

此外,我确信您已经完成了此操作,但请确保您运行的是最新版本的Eclipse CDT.当前版本似乎比以前的版本具有更可靠的索引.

  • 在过去,我还必须关闭并重新打开项目,以便出于某种原因采取此措施. (2认同)
  • "刷新所有文件"运作良好."重建"没有帮助. (2认同)

Ste*_*hen 35

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

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

使用修改的文件更新:适用于资源选择.检查单个文件是否已更改时间戳或scanner -config,并更新已更改文件的索引.

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

  • 虽然这不是问题的答案,但这仍然有用. (3认同)

小智 19

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

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

这应该完全消除并重建索引.


Pav*_*nek 12

上述两者都不适用于我(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支持.


小智 5

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