我通过Linux上的链接资源使用Eclipse和C ++代码。代码分析索引似乎已损坏(Goto定义使光标接近但未定义)刷新资源无法修复它,也没有重新启动Eclipse。
有没有办法刷新索引并重建它?
答案 0 :(得分:73)
右键单击您的项目,进入Index子菜单,然后选择“Rebuild”,“Update with modified files”或“Freshen all files。”
我不知道这三个选项之间的区别,但“使用修改过的文件更新”或“刷新所有文件”之一通常会为我修复它。
此外,我确信您已经完成了此操作,但请确保您运行的是最新版本的Eclipse CDT。当前版本似乎比以前的版本具有更可靠的索引。
答案 1 :(得分:32)
从http://dev.eclipse.org/mhonarc/lists/cdt-dev/msg10390.html,“重建”,“使用修改过的文件更新”或“刷新所有文件”之间的区别:
重建:仅适用于整个项目。清除索引和索引 从头开始的文件。取消后,它会留下空或 部分指数。
使用修改的文件进行更新:适用于资源 选择。检查单个文件是时间戳还是时间戳 scanner-config已更改并更新已更改的索引 文件。
刷新所有文件:适用于资源选择。更新 索引中选定的文件。索引未清除,安全 取消操作。
答案 2 :(得分:19)
转到您的项目properties -> C++ general -> Indexer
。
'project specific settings'
执行此操作,'Configure Workspace Settings...'
)。'Enable Indexer'
点击Apply
。'Enable Indexer'
点击Apply
。这应该完全消除并重建索引。
答案 3 :(得分:11)
上述任何一项都不适用于我(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支持。
答案 4 :(得分:3)
删除仅 .metadata.plugins \ org.eclipse.cdt.core下的 .pdom 文件有帮助,我在将Neon.2升级到Neon后将索引器搞砸了.3这似乎解决了这个问题。 (此评论已在上面存在但不允许在那里确认)。
答案 5 :(得分:1)
您是否尝试将-clean添加到eclipse可执行文件的命令行中?
答案 6 :(得分:0)
Eclipse不再将您的项目视为C ++项目。选择菜单文件/新建/转换为C / C ++项目。索引源代码需要一段时间。为我工作
答案 7 :(得分:0)
我开始尝试Josh Kelleys和mmmmms的答案没有任何运气,但我最终通过检查我的包含路径修复了它。
查看它们的一种方法是在Project Explorer中,展开项目,应该有一个条目“Includes”。在其中,检查每个包含路径上的小黄色警告三角形。如果出现这个三角形,日食很可能无法识别路径。
通过右键单击Project explorer中的“您的项目”来编辑包含路径,然后选择“属性” - > C / C ++一般 - >路径和符号 - >包括。
我看到三种语言选项,Assembly,Gnu C,Gnu C ++。在开始添加路径之前选择正确的路径(可能是Gnu C ++)。添加所有路径后, - >应用 - >如果您被要求,请并重建索引。
当错误的工作区路径应该是 MyProject /文件夹时,我的错误工作区路径看起来像 MyProject / MyProject /文件夹。
对我来说,“问题” - 即使在重建索引之后,查看总是很慢。要确保错误仍然存在,请双击Problems条目,以便eclipse打开/重新加载有问题的文件。我似乎经常需要更新“问题”视图。
我真的不知道是不是eclipse或我的scm搞砸了。无论如何,希望它可以帮助别人!
我使用Luna并使用外部makefile构建。
答案 8 :(得分:0)
我发现我已将全局索引器设置为“使用项目的索引器设置中指定的构建配置”, 并且项目的索引器设置为不使用项目特定的索引器设置。 无论如何,无论我选择哪种配置,索引器都使用相同的固定配置。 解决方法: 窗口首选项,C / C ++,索引器。在“索引器的构建配置”部分中选择“使用活动的构建配置”。
快乐的日子。