【问题标题】:Eclipse Juno with CDT Doesn't Add Built-in Include Directories带有 CDT 的 Eclipse Juno 不添加内置包含目录
【发布时间】: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 版本中,例如Kepler,就像您建议的那样,不仅在升级版本时,而且在其他各种情况下。
  • 建议您接受@languitar 的回答,它对我有用...

标签: c++ eclipse eclipse-cdt


【解决方案1】:

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

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

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

【讨论】:

  • 我在 C++ > 构建 > 设置中没有“发现”选项卡!
  • CDT 的版本发生了变化。您的版本太旧,或者在最近的版本中再次发生了变化。
【解决方案2】:

FWIW:

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

然后一切恢复正常。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-04-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-24
    • 1970-01-01
    • 2023-03-18
    • 1970-01-01
    • 2012-10-02
    相关资源
    最近更新 更多