¿Cómo habilitar la compatibilidad con C++11/C++0x en Eclipse CDT?

Resuelto Nick asked hace 12 años • 17 respuestas

Eclipse 3.7.1 CDT 1.4.1 GCC 4.6.2

Este es un ejemplo de un fragmento de código C++11:

auto text = std::unique_ptr<char[]>(new char[len]);

El editor de Eclipse se queja de:

Function 'unique_ptr' could not be resolved

La compilación Makefile funciona bien. ¿Cómo hacer que Eclipse deje de quejarse de este tipo de errores?

Nick avatar Feb 03 '12 23:02 Nick
Aceptado

Encontré este artículo en el foro de Eclipse, simplemente seguí esos pasos y me funciona. Estoy usando Eclipse Indigo 20110615-0604 en Windows con una configuración Cygwin.

  • Hacer un nuevo proyecto C++
  • Opciones predeterminadas para todo
  • Una vez creado, haga clic derecho en el proyecto y vaya a "Propiedades"
  • Compilación C/C++ -> Configuración -> Configuración de herramientas -> Compilador GCC C++ -> Varios -> Otras banderas. Ponga -std=c++0x(o para la versión más nueva del compilador -std=c++11al final... ... en lugar del compilador GCC C++, también tengo el compilador Cygwin
  • C/C++ General -> Rutas y símbolos -> Símbolos -> GNU C++. Haga clic en "Agregar..." y péguelo __GXX_EXPERIMENTAL_CXX0X__(asegúrese de agregar y anteponer dos guiones bajos) en "Nombre" y deje "Valor" en blanco.
  • Presiona Aplicar, haz lo que te pida y luego presiona Aceptar.

También hay una descripción de esto en las preguntas frecuentes de Eclipse: Preguntas frecuentes de Eclipse/Características de C++11 .

Ajuste del eclipse

Configuración de imagen de eclipse

Carsten Greiner avatar Feb 03 '2012 20:02 Carsten Greiner

Instrucción para Eclipse CDT 4.4 Luna y 4.5 Mars

Primero, antes de crear el proyecto, configure el analizador de sintaxis de Eclipse:

Window-> Preferences-> C/C++-> Build-> Settings-> Discovery->CDT GCC Build-in Compiler Settings

en el cuadro de texto titulado Command to get compiler specsanexar-std=c++11

Ahora puede crear un proyecto, la configuración depende del tipo de proyecto que creó:

Para proyecto creado como: Archivo -> Nuevo -> Proyecto -> C/C++ -> Proyecto C++

Haga clic derecho en el proyecto creado y abra

Properties-> C/C++ Build-> Settings-> Tool Settings-> GCC C++ Compiler->Dialect

Colóquelo -std=c++11en el cuadro de texto titulado other dialect flagso seleccione ISO C++11del Language standardmenú desplegable.

Para proyecto CMake

Genere archivos de proyecto eclipse (dentro de su proyecto)

mkdir build
cd build
cmake -G"Eclipse CDT4 - Unix Makefiles" -D CMAKE_BUILD_TYPE=Debug ..

Luego importe el directorio generado para eclipse como proyecto de eclipse estándar. Haga clic derecho en el proyecto y abra

Properties-> C/C++ General-> Preprocessor Include Paths, Marcos etc.->Providers

habilítelo CDT GCC Build-in Compiler Settingsy muévalo más alto que Contributed PathEntry Containers(Esto es importante)

Último paso común

recompile, regenere Project-> C/C++ Indexy reinicie Eclipse.

Trismegistos avatar Jul 03 '2014 19:07 Trismegistos

Actualización 2016:

A partir de gcc 6 ( cambios ), el dialecto C++ predeterminado es C++14. Eso significa que, a menos que necesite explícitamente un dialecto más nuevo o más antiguo, ya no necesita hacer nada con eclipse.

Para Luna y Marte

Esta sección wiki de la comunidad incorpora la respuesta de Trismegistos;

1. Antes de crear el proyecto, configure el analizador de sintaxis de Eclipse:

Ventana -> Preferencias -> C/C++ -> Compilación -> Configuración -> Descubrimiento -> Configuración del compilador integrado CDT GCC

en el cuadro de texto titulado Comando para obtener las especificaciones del compilador, agregue -std=c++14 2. Crear proyecto, la configuración depende del tipo de proyecto que creó:

Para proyecto creado como: Archivo -> Nuevo -> Proyecto -> C/C++ -> Proyecto C++

Haga clic derecho en el proyecto creado y abra

Propiedades -> Compilación C/C++ -> Configuración -> Configuración de herramientas -> Compilador GCC C++ -> Dialecto

Colóquelo -std=c++14en el cuadro de texto titulado Otras banderas de dialecto o seleccione ISO C++11 en el menú desplegable Estándar de idioma.

Ahora hay una nueva forma de resolver esto sin el truco GXX_EXPERIMENTAL.

Para las versiones más recientes : (Actualmente Juno y Kepler Luna ):

En las versiones más recientes de Juno, la configuración se encuentra en Project properties -> C/C++ General -> Preprocessor Include Paths, Macros etc. -> tab Providers -> CDT GCC Builtin Compiler Settings ().

Versiones anteriores 2012/2013:

  1. En C/C++ Build (en la configuración del proyecto), busque la ruta de inclusión del preprocesador y vaya a la pestaña Proveedores . Anule la selección de todo excepto la configuración del compilador incorporado CDT GCC. Luego, desetiquete las entradas de configuración de Compartir…. Agregue la opción -std=c++11 al cuadro de texto llamado Comando para obtener las especificaciones del compilador.

  2. Ir a caminos y símbolos. En Símbolos, haga clic en restaurar valores predeterminados y luego aplicar.


Notas:

Eclipse es exigente al presionar Aplicar, debe hacerlo cada vez que sale de una pestaña de configuración.

[Autopromoción]: Escribí mis propias instrucciones más detalladas basadas en lo anterior. http://scrupulousabstractions.tumblr.com/post/36441490955/eclipse-mingw-builds

Gracias al usuario Nobodyen https://stackoverflow.com/a/13635080/1149664

Johan Lundberg avatar Nov 25 '2012 07:11 Johan Lundberg