【发布时间】:2012-01-24 02:12:07
【问题描述】:
我正在使用 ecipse cdt 开发 c++ 程序。一个问题是我将所有工作区和 eclipse 包从 turbolinux 移到了 centos linux。然后它会导致一个问题,即系统包含不同,但eclipse没有刷新包含路径。并且所有的 std 容器类都无法解决。
有人知道如何解决这个问题吗?
【问题讨论】:
标签: eclipse eclipse-cdt
我正在使用 ecipse cdt 开发 c++ 程序。一个问题是我将所有工作区和 eclipse 包从 turbolinux 移到了 centos linux。然后它会导致一个问题,即系统包含不同,但eclipse没有刷新包含路径。并且所有的 std 容器类都无法解决。
有人知道如何解决这个问题吗?
【问题讨论】:
标签: eclipse eclipse-cdt
我最近自己也被这个咬了(实际上是来这个网站寻找答案的 ;-) 所以我会分享我的发现:
(这些步骤反映了 Eclipse Indigo SR1)
首先,仔细检查 Eclipse 是否仍然反映旧的包含路径:
接下来,清除旧路径:
项目 -> 属性 -> C/C++ 构建 -> 发现选项 -> GCC C++ 编译器
单击“立即清除发现的条目”按钮
重建您的项目,以便 Eclipse 选择新的包含路径
确认设置了新的包含路径:
【讨论】:
检查了带有 Cdt 8.4.0.201406111759 的 Eclipse Luna 4.4.0。
您可以查看您的workspace/.metadata/.plugins/org.eclipse.cdt.core/ 并检查名为YourProjectName.language.settings.xml 的文件。
删除这个文件(最好之前备份),然后重新打开你的项目(或重启 Eclipse),Cdt 应该会触发 GCC Builtin Discovery。
请注意,这种方式可能仅适用于您的设置设置为项目特定的内置发现(不适用于»使用项目之间共享的全局提供程序«)。 → 见Project Properties → C/C++ General → Preprocessor Include Paths, Macros etc. → Providers → CDT GCC Built-in Compiler Settings。
对于较旧的 Eclipse 版本(恕我直言,大约直到 Indigo),扫描器缓存文件被放置在 workspace/.metadata/.plugins/org.eclipse.cdt.make.core/ 中并命名为 YourProjectName.sc。
【讨论】:
在最新的 Eclipse CDT Mars.1 Release (4.5.1) 中,您必须删除 ${WORKSPACE}/.metadata/.plugins/org.eclipse.cdt.core/${PROJECTNAME}.randomnumbers.pdom 文件,打开项目后,Eclipse 应该会自动开始重新索引包含。
【讨论】: