如何让 Eclipse CDT 的 Linux GCC 工具链解析 C++ 标准库头文件?

Muh*_*han 12 eclipse c c++ eclipse-cdt

在 Ubuntu 12.04 LTS 中,我安装了 Eclipse CDT 插件并打开了新的 hello world 项目来测试所有内容。在创建项目时,我选择了唯一的工具链:“Linux GCC”

但是,在创建项目时,它说

#include<iostream>
#include<cstdlb>
Run Code Online (Sandbox Code Playgroud)

未解决。因此,用线条coutendl不能使用,无法找到std

using namespace std; 也造成了问题。

如何让我#include的标准库头指令得到识别,以支持使用std命名空间的代码?

jam*_*unt 4

如果您遇到与我相同的问题,我怀疑您的项目可以构建,但代码完成/代码突出显示失败?我刚刚找到了一些可能有用的笔记。这就是我所做的:

  • 项目->属性

  • C/C++ 通用

  • 路径和符号

  • 选择适当的语言

  • 单击“添加”并添加编译器版本特定目录

对于语言“GNU C++”我添加了:

  /usr/include
  /usr/include/c++/4.6
  /usr/include/c++/4.6/bits
  /usr/include/i386-linux-gnu
  /usr/include/i386-linux-gnu/bits
  /usr/include/c++/4.6/debug
  /usr/include/c++/4.6/i686-linux-gnu
  /usr/include/c++/4.6/i686-linux-gnu/bits
Run Code Online (Sandbox Code Playgroud)

对于“GNU C”我添加了:

  /usr/include
  /usr/include/i386-linux-gnu
  /usr/include/i386-linux-gnu/bits
Run Code Online (Sandbox Code Playgroud)

说实话,我不认为上面的所有目录实际上都是必需的(您可能可以删除“bits”目录),但上面的列表当时对我有用。

我现在使用 eclipse.org 中的 Eclipse Indigo(版本 3.7.2),它会自动查找并添加正确的包含目录。该列表对我来说是不同的:

/usr/include/c++/4.6
/usr/include/c++/4.6/i686-linux-gnu
/usr/include/c++/4.6/backward
/usr/lib/gcc/i686-linux-gnu/4.6/include
/usr/local/include
/usr/lib/gcc/i686-linux-gnu/4.6/include-fixed
/usr/include/i386-linux-gnu
/usr/include
Run Code Online (Sandbox Code Playgroud)

显然,只添加系统上实际存在的包含目录;-)