2012-05-03 19 views
5

Soy un usuario de Mac OS X Lion que usa Xcode para C++, y parece que no hay actualizaciones disponibles para Xcode. No parece ser capaz de compilar el código exclusivo de C++ 11, pero por alguna razón, pensé que Apple había implementado C++ 11 prácticamente. Y sí, tengo soporte para las herramientas de línea de comandos.Tengo problemas con C++ 11 en Xcode

Por otra parte, podría ser solo yo. Si es así, ¿hay algún tipo de IDE que admita C++ 11 o alguna forma de actualización?

+4

Xcode 4.2 se envía con clang y clang admite parcialmente C++ 11. Puede cambiar a clang en las opciones de compilación. –

+0

Puede usar Macports, envían todas las versiones más nuevas de gcc http://www.macports.org/ – inf

Respuesta

8

utilizo Xcode y defina las siguientes configuraciones:

C++ dialecto lenguaje: C++ 11 ++ 11 o GNU biblioteca

C++ Standart: libC++ (C++ LLVM standart biblioteca con soporte para C++ 11)

versión de Xcode: 4.3.2

XCode project settings

+0

¡Parece que funciona! ¡Gracias! – Whovian

+0

No se olvide de seleccionar el compilador LLVM también. – sbooth

+2

Tengo un problema al enlazar std lib. Si elijo libC++ (biblioteca estándar LLVM C++ con compatibilidad con C++ 11), el enlazador no puede vincular "std :: string :: find (char, unsigned long) const" y otros símbolos, si elijo libstC++ (biblioteca GNU C++ Standart) luego hay errores de compilación en los encabezados "no se puede encontrar :: std :: mover". ¿Qué estoy haciendo mal? ¿Como puedo resolver esto? Gracias. – BergP

3

Si está utilizando Xcode 4.3 hay varias configuraciones de proyecto relevantes que necesita para usar las características de C++ 11. El primero es usar el compilador clang. Algo así como

GCC_VERSION = com.apple.compilers.llvm.clang.1_0 

en su .xcconfig lo establecerá, o puede utilizar la interfaz gráfica de usuario.

A continuación, debe decirle a LLVM la que C++ estándar de empleo:

CLANG_CXX_LANGUAGE_STANDARD = gnu++11 

Esto hará que las características del lenguaje como la gama basada en, constructores delegados, etc. disponibles.

Por último, si desea utilizar C++ 11 funciones STL (como std::unordered_map) es necesario utilizar la libc STL ++:

CLANG_CXX_LIBRARY = libc++ 
+0

Lo siento mucho, soy muy nuevo, pero ¿cómo exactamente lo hago? Aparentemente, esos son comandos para LLVM o algo por el estilo, pero realmente no sé qué hacer. – Whovian

+0

Si no está utilizando archivos .xcconfig, puede seleccionar su archivo de proyecto en el inspector de Xcode y debería ver una lista de opciones similares a las que publicó Alexander. – sbooth

0

En XCode 5/OpenCV 2.4.9, que puede seleccionar:

XCode settings

y construye sin error. Si configuro el libC++ sin especificar C++ Language Dialect entonces recibo el mismo problema que OP