我在Ubuntu的Eclipse 3.5.2 Galileo中使用CDT。
我的eclipse的索引器有时不起作用。我的意思是当我ctrl
点击一个函数,它说Could not find symbol in index
。此外,F3按钮单击导致相同的错误消息。实际上大多数地方它不起作用,并且在很少的地方工作。
我见过Eclipse的其他一些版本,在File菜单下为Indexing列出了一个菜单项。像文件 - >索引器 - >重建....但在我的文件菜单中没有索引器的这样的菜单项。
唯一的方法是使用Eclipse的其他版本还是遗漏了什么?任何关于此的指针都会有所帮助。
在我的情况下,没有任何工作,最后我做了以下:
1) Close the project
2) Delete the project(do not check from disk option)
3) create new project with existing code(use the deleted project path)
4) Successfully indexed my c++ code
以上步骤对我有用。
要添加包含要解析的代码的路径,请按照下列步骤操作: 1.右键单击项目 2.选择“属性” 3.转到C / C ++ General 4.转到路径和符号 5.如果缺少路径,请添加路径。
要重新解析代码,请按照下列步骤操作: 1.右键单击项目 2.选择索引 3.重建
如果这不起作用,那么你运气不好。 c ++是很难解析的语言。
如果您的索引器卡住并且无限时间挂起,则可以从.metadata
中删除项目的索引器相关文件。确保eclipse不同时运行。
.metadata
目录位于工作区路径中的隐藏文件夹中。
在那里你可以导航到:
<workspace_path>/.metadata/.plugins/org.eclipse.core.runtime/.settings/
在.settings/
目录中有.prefs
文件,它们分别存储每个项目的首选项。
例如:org.eclipse.cdt.core.prj-test-project.prefs
存储项目测试项目的首选项
使用文本编辑器打开此文件,并删除以indexer
开头的所有行。这会将此特定项目的索引器设置重置为默认值。
或者,您可以从indexer
中删除以org.eclipse.cdt.core.prefs
开头的所有行;执行此操作将重置整个工作区的索引器设置。
我相信您可以通过运行清除索引:
rm .metadata/.plugins/org.eclipse.jdt.core/*.index
然后重启Eclipse。然后它将重建其索引。
这对我来说在Java项目中起作用,但我想它对所有(大多数?)项目类型都是相同的索引。
您可以尝试重建索引。在项目视图中右键单击项目。然后Index -> Rebuild
。
这是我在Project->C++ Index->Rebuild
失败后使用的解决方案。这个技巧避免删除您当前的项目:
1) Copy the current project (Right click->Copy from Project Explorer)
2) Paste it (Right click->Paste from Project Explorer) and give the copy another name
3) The indexer should now start and index both projects
4) When indexation is complete, you can delete the copy
PS:确保您的原始项目是一个实际的C ++项目,否则这显然不起作用。
将项目转换为C或C ++性质:
Right click on project
:新>转换为C / C ++项目
In "Convert to C or C++"
:选择C / C ++项目
In "Project options":
检查“指定项目类型”
...Project Type:
选择“Makefile项目”
...Toolchains:
总海湾合作委员会
我遇到了同样的问题,结果是索引文件夹由root拥有(由于某种原因,我必须将Eclipse作为root运行一次)我使用sudo chown -R username projectfolderpath
回收了项目文件夹并解决了问题。
对我来说,这工作:
我希望它可以帮助任何人。