Hay dos cosas que tienes que hacer, primero necesitas configurar tu compilador, luego necesitas configurar el procesador de idioma de CDT. Como no mencionó qué compilador está utilizando, asumiré que es GCC, pero los pasos serán similares para otros compiladores. (Tenga en cuenta que, por supuesto, necesita un compilador que admita C ++ 11).
Configurar el compilador es bastante sencillo:
- Haga clic derecho en su proyecto y haga clic en Propiedades
- En C / C ++ Build, haga clic en Configuración
- En el compilador GCC C ++, haga clic en Varios
- En el cuadro Otras banderas, agregue "-std = c ++ 11" a la lista de tokens.
- Haga clic en Aplicar y Aceptar
En este punto, debería poder reconstruir su proyecto y hacer que se ejecute. Pero CDT aún puede mostrar errores para C ++ 11 incluye. He aquí cómo puede resolver eso:
- Haga clic derecho en su proyecto y haga clic en Propiedades
- En C / C ++ General, haga clic en "El preprocesador incluye rutas, macros"
- Seleccione la pestaña Proveedores
- Debería haber un elemento en la lista que diga algo como "Configuración del compilador integrado de GCC". Seleccione esta entrada.
- Desmarca la opción "Usar proveedor global ..."
- Debajo de la lista hay un cuadro que dice "Comando para obtener especificaciones del compilador". Agregue "-std = c ++ 0x" a esto.
- Mueva el proveedor "GCC Built in Compiler Settings" en la parte superior de la lista usando el botón 'Move Up' a la derecha.
- Haga clic en Aplicar y luego en Aceptar.
- De vuelta en su espacio de trabajo de Eclipse, seleccione el menú Proyecto, Índice C / C ++ y haga clic en "Volver a resolver las inclusiones no resueltas".
-std=c++11
donde dijiste que pusiera, y reconstruí el índice completo, todavía muestra una gran cantidad de std :: cout, std :: set, etc nocompiler spec
, y todavía no funciona. std :: shared_ptr y lo mismo no reconocido. Aunque solía funcionar en la máquina más antigua con juno.Compatibilidad con C ++ 11 en Eclipse Kepler Service Release 1 (Id. De compilación: 20130919-0819)
En la última versión de Eclipse Kepler SR1 solo tienes que agregar -std = c ++ 11
La línea "Comando para obtener las especificaciones del compilador:" debería verse así:
fuente
A partir de CDT 8.3 ( disponible como actualización de Kepler ), hay una nueva opción de dialecto en la configuración de compilación:
http://wiki.eclipse.org/CDT/User/NewIn83#Build
fuente
Yo uso Eclipse Kepler y para solucionarlo hice esto:
1 - Haga clic con el botón derecho en el Proyecto >> Propiedades >> C / C ++ Build :: Configuración
2 - Fue al compilador GCC G ++ >> Varios >> Otras banderas
¡Eso solucionó mi problema!
¡Espero que te haya ayudado!
fuente
Ejecutando eclipse indigo y cdt 8.0.2 aquí. Seguí todas las guías, pero aún era necesario configurar la definición del preprocesador a mano para encontrar cosas como std :: unique_ptr. La "memoria" del archivo de inclusión comprueba esto. Establezca __cplusplus en 201103L en la pestaña "Símbolos" en "Rutas y símbolos" en "C ++ General" en las propiedades del proyecto.
fuente
Agregar el indicador de dialecto "-std = c ++ 11" a las propiedades del proyecto-> Compilación de C / C ++ -> Configuración -> Configuración de herramientas (compilador de GCC C ++ -> Dialect) resolvió mi problema en Eclipse Kepler, aparte de las configuraciones indicadas anteriormente.
fuente
Estoy usando Eclipse Luna y no hay "Configuración de herramientas" en C / C ++ Build -> Settings. I DID complemento -std = c ++ 11 a la línea de comandos del compilador especificaciones en "C / C ++ General -> preprocesador Incluye -> Proveedores" como se sugiere. Pero eso aún no satisfizo la capacidad de mi indexador para resolver emplace ().
Así que busqué en el archivo de encabezado y encontré que las funciones de emplazamiento dependen de __cplusplus> = 201103L. Así que acabo de agregar el símbolo del preprocesador "__cplusplus" y le di el valor 201103.
Un poco hackish pero el indexador está contento. (Y los archivos make definen mis banderas de compilación, no el proyecto eclipse)
fuente
La solución proporcionada por MrEricSir solo funciona después de tener instalado el último Eclipse Oxygen CDT. No me funciona con Mars CDT.
fuente