2012-07-10 3 views
6

Tengo Eclipse Juno C++ (ID de compilación: 20120614-1722). Estoy tratando de establecer los argumentos de invocación del compilador con instrucción -std = C++ 11 o -std = C++ 0x, pero al compilar el código a continuación. No hay "Configuración de herramienta" en Eclipse Juno (al menos para Mac), así que no puedo ir a "C/C++ Build -> Configuración -> Configuración de herramienta". Mi compilador GCC es 4.8.0No se puede establecer Eclipse Juno C++ con std = C++ 11

#include <iostream> 
#include <sstream> 
#include <vector> 
using namespace std; 
int main(void) { 
    vector<string> v = {"a","b","c"}; 
    for(string s: v){ 
     cout << s << endl; 
    } 
    return 0; 
} 

llegué:

HelloWorld.cpp:16:33: error: could not convert ‘{"a", "b", "c"}’ from ‘<brace-enclosed initializer list>’ to ‘std::vector<std::basic_string<char> >’ 
HelloWorld.cpp:17:16: error: range-based ‘for’ loops are not allowed in C++98 mode 
+2

¿Qué _compiler_ actual y biblioteca estándar está utilizando? – ildjarn

+0

GCC 4.8.0 compilador –

+1

¿se aseguró de que establezca las opciones para g ++ (y no como una parte diferente de la cadena de herramientas)? : haga esto: C/C++ Build -> Configuración -> Configuración de herramienta -> GCC C++ Compiler -> Miscellaneous -> Other Flags. Put -std = C++ 0x al final. –

Respuesta

5

que podría seguir los pasos que se describen en esta respuesta: Eclipse CDT C++11/C++0x support

Una posibilidad es, que sus opciones eran aplicado a la parte incorrecta de la cadena de herramientas.

-1

La razón por la que no se ve configuración de la herramienta se debe a que al crear el proyecto, que debe elegir ejecutable en lugar de GNU Autotools

+0

Si necesita y desea autotools y las configura correctamente, su código compila bien, pero eclipse aún muestra errores de sintaxis. Elegir no usar autotools no es la solución al problema. –

0

acabo enfrentado exactamente el mismo problema. Por favor, compruebe si su proyecto tiene una personalizada "makefile" (*.mk). Si tiene ese "archivo MAKE", por favor ponga lo siguiente en su "archivo MAKE" y compile.

"LOCAL_CFLAGS: = -fexceptions -std = C++ 0x -std = C++ 11"

PS: LOCAL_CFLAGS es para las opciones del compilador que se puede poner en "xxx> Otros ". Y para ser sincero, no sé cómo resolverlo si su proyecto no tiene un "archivo MAKE" personalizado. Pero, Eclipse Juno literalmente no tiene el camino que describieron los muchachos en lo descrito anteriormente.

Cuestiones relacionadas