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


12

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

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

#include<iostream>
#include<cstdlb>

尚未解决。因此,带有cout和的行endl不能使用,也找不到std

using namespace std; 也造成了问题。

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


即使执行Project> 后,这些错误是否仍然存在Build All
伊利亚·卡根

2
可能这是一个愚蠢的问题,但是您是否专门将新项目创建为C ++项目而不是C项目?
bazz

Answers:


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

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

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

TBH,我认为实际上并不需要上面的所有目录(您可以删除“ 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

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


嗯,这对我不起作用-尽管我实际上使用的是Debian Stretch 64位。但是我确实根据您的平台调整了您的建议。
einpoklum 2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.