c++ eclipse c++11 eclipse-neon

¿Cómo se habilita la sintaxis de C++ 11 en Eclipse Neon?



c++11 eclipse-neon (4)

Estoy desarrollando el código C + 11 en Eclipse Neon y noté hoy que el rango basado en el bucle introducido en C + 11 está resaltado en rojo por el IDE, lo que indica que no lo reconoce.

He encontrado varios enlaces sobre cómo hacer esto para versiones anteriores de CDT como esta ( compatibilidad con Eclipse CDT C ++ 11 / C ++ 0x ) Puede ver si no hay una pestaña de "Configuración de herramientas".

Alguien puede sugerir cómo configurar mi proyecto para que la sintaxis de C ++ 11 se resalte correctamente (estoy usando un sistema de compilación por separado)


  1. Haga clic derecho en su proyecto y haga clic en Propiedades
  2. Navegue a C / C ++ General y Preprocesador incluye rutas, macros, etc.
  3. Seleccione la pestaña Proveedores, haga clic en la fila de configuración del compilador para el compilador que utiliza.
  4. Agregue -std = c ++ 11 a Command para obtener las especificaciones del compilador.
  5. Aplicar los cambios.

Se verá algo como esto:

${COMMAND} -E -P -v -dD "${INPUTS}" -std=c++11


Por alguna razón, editar la configuración global del compilador de c ++ no me funcionó. Seguir las instrucciones para modificar la configuración específica del proyecto funcionó. Consulte: Soporte de Eclipse CDT C ++ 11 / C ++ 0x


Por razones que no entiendo, cuando busco pistas sobre por qué mi Eclispe Oxygen + CDT 9.3.2 que se ejecuta en Fedora 27 no pudo depurar mi código de manera confiable, Google puso esta pregunta / respuesta como algo para mirar.

Básicamente, mi problema ha sido que un programa de C ++ bastante simple, que usa las funciones de C ++ 11 (específicamente shared_ptr), no se podía depurar en Eclipse Oxygen 2 + CDT 9.3.2 sobre Fedora 27 (que tiene la versión gdb 8.0.1 instalada desde el paquete estándar repo). Al entrar en algunas llamadas a métodos, se produjo una sesión de depuración bloqueada, no sucedió nada, finalice Eclipse para recuperarse.

Si depuré el binario usando gdb en la línea de comando, todo fue bueno; Podría establecer puntos de ruptura, etc, todo funcionó como debería. Pero desde dentro de Eclipse, nada haciendo.

Sin embargo, poner -std = c ++ 11 en la configuración del proyecto como lo muestra Andreas resolvió el problema. Tengo muy poca idea de por qué. Pensé en ponerlo en caso de que alguien más se encontrara con un problema similar.

g ++ está en la versión 7.2.1


También puedes hacer lo siguiente.

  1. ir a las propiedades del proyecto (alt enter)
  2. En el panel izquierdo, desplácese hasta "Compilación C / C ++", contraiga, seleccione la configuración.
  3. En el panel derecho, seleccione y contraiga su compilador en el menú Configuración de herramientas, seleccione "Dialecto", elija su idioma estándar de la lista desplegable, o ingrese -std = c ++ 11 en la entrada de texto "otras banderas de dialecto".

Alternativamente,

  1. Propiedades -> "Compilación C / C ++" -> contraer y seleccionar "Configuración"
  2. En la pestaña Configuración de herramientas, seleccione su compilador y resalte el campo "Varios".
  3. añada -std = c ++ 11 al campo de entrada "Otras banderas".