2013-04-28 41 views
14

由于我从Eclipse Indigo升级到Juno(在Ubuntu 12.04上),我一直遇到问题,它显示标准库的“未解决的包含”错误(例如旁边#include <iostream>#include <vector>等),虽然程序生成并运行良好(使用g ++)。这只发生在使用Juno创建的新项目中,而不是Indigo的旧项目在我的工作区中。带有CDT的Eclipse Juno不会添加内置的包含目录

感谢其他几个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 

存在时“显示内置值”复选框我是没有这个问题的老靛蓝项目打勾,但在我与朱诺创建新的项目不存在的。果然,如果我手动将这七个目录添加到项目设置的“包含”选项卡中,问题就会消失。但我不想为每个新创建的项目手动执行此操作。是否有这个原因不再是Juno的默认设置,并且有办法恢复它吗?

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

+0

这样的问题也正好与其他的Eclipse版本,例如开普勒,就像你建议的那样,不仅在升级版本时,而且在其他各种情况下。 – einpoklum 2013-07-16 07:21:21

+0

建议你接受@ languitar的答案,它为我的作品...... – einpoklum 2013-07-16 07:22:54

回答

12

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

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

在Arch Linux的我相依为命GCC版本更改后要做到这一点,因为在这种情况下,该版本是在文件夹名称编码的默认位置改变,日食不会注意到这一点。

+0

我没有“发现”选项卡中的C++>构建>设置! – MSH 2015-04-17 07:12:30

+0

事情已经改变了CDT的版本。要么你的版本太旧了,要么是在最近的版本中,这个版本已经改变了。 – languitar 2015-04-19 13:50:12

0

FWIW:

我发现,从另一台计算机导入项目之后,我没有得到显示在“包括”我在Project Explorer项目部分的任何东西。为了解决这个问题,我需要删除文件夹/workspace/project/.settings/。对我而言,它只有一个文件(language.settings.xml)。

然后一切都恢复正常。