Tengo algunos problemas con C++11 en Xcode
Frecuentes
Visto 10,062 veces
5
Soy un usuario de Mac OS X Lion que usa Xcode para C++ y parece que no hay actualizaciones disponibles para Xcode. Parece que no puedo compilar 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 herramientas de línea de comandos.
Por otra parte, ese podría ser solo yo. Si es así, ¿hay algún tipo de IDE que admita C ++ 11 o alguna forma de actualizar?
3 Respuestas
8
Uso Xcode y configuro las siguientes configuraciones:
Dialecto del lenguaje C++: C++11 o GNU++11
Biblioteca estándar de C++: libc++ (biblioteca estándar LLVM C++ con compatibilidad con C++11)
Versión Xcode: 4.3.2
contestado el 03 de mayo de 12 a las 20:05
No olvide seleccionar también el compilador LLVM. - cabina
Tengo un problema con la vinculación de 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 del compilador en los encabezados "cannot find ::std::move" . ¿Qué estoy haciendo mal? ¿Como puedo resolver esto? Gracias. - BergP
También necesitamos modificar el nombre del archivo de .m a .mm - Rigel Chen
3
Si usa Xcode 4.3, hay varias configuraciones de proyecto relevantes que necesita para usar las funciones de C++ 11. El primero es usar el compilador clang. Algo como
GCC_VERSION = com.apple.compilers.llvm.clang.1_0
en tu .xcconfig
lo configurará, o puede usar la GUI.
A continuación, debe decirle a LLVM qué estándar de C++ usar:
CLANG_CXX_LANGUAGE_STANDARD = gnu++11
Esto hará que las características del lenguaje, como el rango basado en, los constructores delegados, etc., estén disponibles.
Finalmente, si desea utilizar las funciones STL de C++11 (como std::unordered_map
) necesita usar libc++ STL:
CLANG_CXX_LIBRARY = libc++
contestado el 03 de mayo de 12 a las 20:05
Lo siento mucho, soy muy nuevo, pero ¿cómo hago exactamente eso? Aparentemente, esos son comandos para LLVM o algo por el estilo, pero realmente no sé qué hacer. - whoviano
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 similar a la que publicó Alexander. - cabina
0
En XCode 5 / opencv 2.4.9, puedo seleccionar:
Y se construye sin error. Si configuro libc ++ sin especificar el dialecto del idioma C ++, obtengo el mismo problema que OP
Respondido el 20 de junio de 20 a las 10:06
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas c++ xcode c++11 osx-lion or haz tu propia pregunta.
Xcode 4.2 se envía con clang y clang admite C++ 11 parcialmente. Puede cambiar a clang en las opciones de compilación. - user1203803
Puede usar Macports, envían todas las versiones más nuevas de gcc macports.org - Stephan Dollberg