带有CDT的Eclipse Juno不添加内置包含目录

时间:2013-04-28 04:28:41

标签: c++ eclipse eclipse-cdt

自从我从Eclipse Indigo升级到Juno(在Ubuntu 12.04上)以来,我遇到的问题是标准库显示“未解决的包含”错误(例如#include <iostream>#include <vector>旁边等等),尽管程序构建并运行良好(使用g ++)。这只发生在使用Juno创建的新项目中,而不是在工作区中使用Indigo创建的旧项目。

由于其他几个SO问题(见下文*),我能够在项目的属性&gt;中找到问题的根源而没有“内置值”。 C / C ++一般&gt;路径和符号&gt;包含标签:

/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创建的新项目中不存在。果然,如果我手动将这七个目录添加到项目设置中的“包含”选项卡,问题就会消失。但我不想为我创建的每个新项目手动执行此操作。有没有理由这不再是Juno的默认设置,有没有办法恢复它?

*其他有关类似问题的SO问题我已经咨询但没有解决我的问题:

2 个答案:

答案 0 :(得分:12)

  • 打开Eclipse首选项对话框( Windows |首选项)。
  • 打开 C ++ |建立|设置
  • 打开发现标签。
  • 选择内置编译器设置条目。
  • 清除条目按钮。

之后eclipse应该再次从编译器请求默认值。

在Arch Linux上我必须在每次GCC版本更改后执行此操作,因为在这种情况下,默认值的位置随着版本在文件夹名称中编码而更改,而eclipse没有注意到这一点。

答案 1 :(得分:0)

FWIW:

我发现从另一台计算机导入项目后,我没有在Project Explorer的项目“Includes”部分下显示任何内容。要解决此问题,我需要删除文件夹/workspace/project/.settings/。对我来说,它只有一个文件(language.settings.xml)。

然后一切都恢复正常。