2011-09-25 12 views
5

Tengo un proyecto que a veces se desarrolla en Windows/Visual Studio 2010 y usa algunas características de C++ 11 y necesito poder desarrollar/construir en Mac OS X. Cuando traté de construir el proyecto con Xcode, tuve muchos errores con respecto a las nuevas características de C++ 11 y revisé la versión de gcc para encontrar que era bastante antigua (4.2). Parece que Apple está tratando de obligar a los desarrolladores a pagar una actualización innecesaria a Lion rechazando permitir que Xcode 4+ se descargue en cualquier otra versión de Mac OS, así que me queda Xcode 3.x.C++ 11 con Xcode en Mac OS X Snow Leopard

¿Cómo puedo seguir usando C++ 11 en Snow Leopard? ¿Hay alguna manera de que pueda hacer esto y mantener Xcode como un IDE?

+0

posible duplicado de [¿Puedo usar las últimas características de C++ 11 en XCode 4 o OSX Lion?] (Http://stackoverflow.com/q/7482026/636019) – ildjarn

+0

ildjarn, absolutamente no. Esta pregunta se refiere a las versiones XCode 4 nuit9

+1

Xcode 3 es el valor predeterminado para Snow Leopard, Apple hizo una primera versión de Xcode 4 disponible para SL a través de la Mac App Store (y versiones estaban/están disponibles a través de la Apple Developer Connection). –

Respuesta

6

Actualización feb.25 2012: Ahora hay muchas funciones disponibles para que pueda utilizar el último clang. Tal vez podría apuntar a 10.6 si solo usa funciones de idioma. Si necesita funciones de biblioteca, necesitará 10.7.


dada la actual (sept.24.2011) Estado del conjunto de herramientas Xcode, es más fácil (OMI) para elegir otra ide o el sistema operativo si es necesario C++ 11 de soporte.

la horquilla de los usos de gcc xcode nunca admitirá estas características. clang está muy por detrás de las características de wrt C++ 11 (porque su implementación en C++ todavía es muy nueva y otros compiladores han tenido algunos años más). por lo tanto, los compiladores con los que se incluye xcode actualmente no admiten suficientes características para el desarrollo de C++ 11, independientemente de la versión de osx que utilice.

puede instalar una versión más nueva de gcc y usar otra ide bastante fácilmente.

técnicamente, también puede hacer un complemento para xcode 3 (no compatible oficialmente) que invoca otro compilador (por ejemplo, una versión más reciente de gcc). esa ruta se ha cerrado en xc4 (afaik). Actualización aparentemente, todavía está disponible en Xc4; ver el comentario de idljarn a continuación.

para muchos proyectos, es más fácil simplemente usar su mac para arrancar en linux o windows (o usar virtualización).

su última opción es el compilador de intel, que se puede usar en xcode y proporciona una cantidad decente de compatibilidad con C++ 11; pruébelo con xcode antes de comprar para ver si se ajusta a sus necesidades, juega bien con xcode, y es compatible con las funciones de C++ 11 que usa su equipo.

Por último, no creo que lo hagan por su dinero de actualización. en realidad no mantienen xcode para múltiples lanzamientos muy bien; solo esperan que te quedes con lo último y lo mejor a menos que necesites compatibilidad con versiones anteriores; simplemente dejas de actualizar en ese caso. invirtieron y ayudaron en el desarrollo del clang después de que la licencia de gcc cambió. así que sí ... osx siempre ha estado muy atrás del soporte de wrt C++ 11 porque decidieron cambiar a otro compilador (muy joven). si espera a que xcode admita C++ 11, tendrá que esperar que suene el clang, lo que puede llevar bastante tiempo.

+1

Los complementos para xcode 3 también funcionan para xcode 4 (aunque no son compatibles). – ildjarn

+0

@ildjarn justo lo que necesitaba ... otro proyecto antes de fin de la noche (pero en serio, gracias! =)) – justin

+0

@ildjarn confirmó. gcc4.5 (a través de 'port') funciona como un complemento con xc4. – justin

3

Acabo de ver esto ahora y me gustaría actualizarlo sobre esto. LLVM que actualmente se envía con XCode está en la versión 3 (Source). Esta versión actual es muy buena con el soporte de C++ 11.Aquí hay un enlace a lo que está apoyado:

http://clang.llvm.org/cxx_status.html

Puede comparar esto con la ayuda de GCC actual aquí:

http://gcc.gnu.org/projects/cxx0x.html

Como se puede ver, Clang no está muy por detrás, si es así, con las características del nuevo estándar admitido. La única cosa que veo preocupante es la falta de soporte para funciones de concurrencia, pero eso es el caso para la mayoría de los compiladores de C++ 11 debido a la naturaleza de apoyar it.So espero que esta respuesta no es demasiado tarde y que son no disuadido Ve a buscar la última versión de Xcode y dispara (¡si aún no lo hiciste;)!

Cuestiones relacionadas