【发布时间】:2013-04-21 23:54:09
【问题描述】:
自从我从 Eclipse Indigo 升级到 Juno(在 Ubuntu 12.04 上)后,我一直遇到标准库显示“未解决的包含”错误的问题(例如,在 #include <iostream> 和 #include <vector> 旁边等) ,尽管程序构建和运行良好(使用 g++)。这只发生在使用 Juno 创建的新项目中,而不是在我的工作区中使用 Indigo 的旧项目。
感谢其他几个 SO 问题(见下文*),我能够将问题的根源追溯到项目的 Properties > C/C++ General > Paths and Symbols > 中缺少“内置值”包括标签:
/usr/include/c++/4.6
/usr/include/c++/4.6/x86_64-linux-gnu
/usr/include/c++/4.6/backward
/usr/lib/gcc/x86_64-linux-gnu/4.6/include
/usr/lib/gcc/x86_64-linux-gnu/4.6/include-fixed
/usr/include/x86_64-linux-gnu
/usr/include
在我的没有此问题的旧 Indigo 项目中勾选“显示内置值”复选框时出现,但在我使用 Juno 创建的新项目中不存在。果然,如果我手动将这七个目录添加到项目设置中的 Includes 选项卡中,问题就消失了。但我不想为我创建的每个新项目手动执行此操作。是否有原因这不再是 Juno 中的默认设置,有没有办法恢复它?
*我咨询过的其他类似问题的 SO 问题,但没有解决我的问题:
- Eclipse 3.7.0 Indigo with CDT shows many false compilation errors:我认为 Erzsébet Geréb 的答案将是我的解决方案——在 Juno 中,如果我创建一个新的 C++ 项目,其中“项目类型”作为“GNU Autotools”而不是“可执行文件”下的类别之一,内置目录在那里。 (在 Indigo 中,没有 GNU Autotools 类别。如果我在 Indigo 中将其创建为“可执行文件”下的空项目或 Hello World 项目,那么这些目录就在那里,但如果我在 Juno 中这样做,它们就不会——我有在“GNU Autotools”下选择一个选项。)但是,对于“GNU Autotools”项目,当我转到项目的“属性”>“C/C++ 构建”>“设置”时,“工具设置”选项卡不再存在,我在无法添加 GCC C++ 编译器的包含路径和 GCC C++ 链接器的库,我需要这样做,因为我的许多 C++ 项目都使用 OpenCV 库。
- "Unresolved inclusion" error with Eclipse CDT for C standard library headers:告诉我如何手动添加包含路径,但不告诉我如何默认添加内置路径
-
error , Symbol 'vector' could not be resolved:清理
~/.eclipse/和重建索引没有帮助。 - Eclipse CDT Builtin Include Directories:发现选项的设置与我正常工作的项目相同。
- eclipse CDT 8.01 - default paths (libstdc,libstdc++) totally disappeared in 'includes' directory
- Eclipse CDT indexer lost after system update: 并不能解决所有新项目的问题。
【问题讨论】:
-
这种问题也发生在其他 Eclipse 版本中,例如Kepler,就像您建议的那样,不仅在升级版本时,而且在其他各种情况下。
-
建议您接受@languitar 的回答,它对我有用...
标签: c++ eclipse eclipse-cdt