¿Cómo hacer que la cadena de herramientas Linux GCC de Eclipse CDT resuelva los encabezados de la biblioteca estándar de C ++?

12

En Ubuntu 12.04 LTS, instalé el complemento Eclipse CDT y abrí el nuevo proyecto hello world para probar todo. Cuando estaba creando el proyecto, elegí la única cadena de herramientas: "Linux GCC"

Cuando se crea el proyecto, sin embargo, dice que

#include<iostream>
#include<cstdlb>

están sin resolver Por lo tanto, las líneas con couty endlno se pueden usar y no se puede encontrar std.

using namespace std; También está causando problemas.

¿Cómo puedo hacer que se #includereconozcan mis directivas para los encabezados de la biblioteca estándar, para admitir código usando el stdespacio de nombres?

Muhammad Khan
fuente
¿Estos errores persisten incluso después de hacer Project> Build All?
Eliah Kagan
2
Mayne, esta es una pregunta estúpida, pero ¿creaste un nuevo proyecto específicamente como un proyecto C ++ en lugar de un proyecto C?
bazz

Respuestas:

4

Si tuvo el mismo problema que yo, sospecho que su proyecto se construye pero falla la finalización / resaltado del código. Acabo de encontrar algunas notas que pueden ser útiles. Esto es lo que hice:

  • Proyecto-> Propiedades

  • C / C ++ General

  • Caminos y Símbolos

  • seleccione el idioma apropiado

  • Haga clic en "Agregar" y agregue los directorios específicos de la versión del compilador

Para el lenguaje 'GNU C ++' agregué:

  /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

Para "GNU C" agregué:

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

TBH, no creo que todos los directorios anteriores sean realmente necesarios (probablemente podría eliminar los directorios 'bits'), pero la lista anterior funcionó para mí en ese momento.

Ahora estoy usando Eclipse Indigo (versión 3.7.2) de eclipse.org y automáticamente encuentra y agrega los directorios de inclusión correctos. La lista es diferente para mí:

/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

Claramente, solo agregue los directorios de inclusión que realmente existen en su sistema ;-)

jamesodhunt
fuente
Bueno, esto no funciona para mí, aunque en realidad estoy en Debian Stretch de 64 bits. Pero sí adapté tus sugerencias a mi plataforma.
einpoklum