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

ero*_*rtc 14 c++ eclipse eclipse-cdt

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

感谢其他几个SO问题(见下文*),我能够在项目的属性> C/C++常规>路径和符号>包含选项卡中找到问题的根源而没有"内置值":

/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 
Run Code Online (Sandbox Code Playgroud)

在我的旧Indigo项目中勾选"显示内置值"复选框时出现,这些项目没有出现此问题,但在我使用Juno创建的新项目中不存在.果然,如果我手动将这七个目录添加到项目设置中的"包含"选项卡,问题就会消失.但我不想为我创建的每个新项目手动执行此操作.有没有理由这不再是Juno的默认设置,有没有办法恢复它?

*其他SO问题我遇到过类似问题,但没有解决我的问题:

lan*_*tar 12

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

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

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