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

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

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

然而,当项目创建时,它说

#include<iostream>
#include<cstdlb>

未解析。因此,带有cout和 的行endl无法使用,并且无法找到std

using namespace std;也造成了问题。

如何才能让#include标准库头文件被识别,从而支持使用std命名空间的代码?

答案1

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

  • 项目->属性

  • 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

对于“GNU C”,我添加了:

  /usr/include
  /usr/include/i386-linux-gnu
  /usr/include/i386-linux-gnu/bits

老实说,我认为上面的所有目录实际上都不是必需的(您可能需要删除“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

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

相关内容