Utilice gcc 4.2 en Xcode 4.2 y iOS SDK 5.0

Acabo de actualizar a Xcode 4.2 y iOS SDK 5 anteriormente hoy. Pero todo parece diferente con los nuevos comstackdores.

Ahora hay dos opciones de "Comstackdor para C / C ++ / Objetivo-C", "Comstackdor de LLVM de Apple 3.0" y "LLVM GCC 4.2". GCC 4.2 falta.

Apple LLVM comstackdor 3.0, comstack realmente rápido (me gusta eso), me da 999 advertencias y mi juego ya no puede ejecutarse. Parece que hay algunas diferencias en la memory, y se cuelga al cargar los scripts de nuestro juego.

LLVM GCC 4.2 es tan malditamente lento, todavía no puedo terminar una compilation después de horas en mi máquina i7.

Y, una cosa más es que nuestro motor usa líneas de command gcc para comstackr (en lugar de xcode).

Entonces, lleva a una pregunta, ¿cómo puedo usar gcc 4.2 en Xcode 4.2 ? ¿Es eso incluso posible?

Esta es una forma de habilitar la compilation con gcc 4.2 en xcode 4.2 . La mayor parte de esto se hace a través de la línea de command, así que cuando ve líneas como esta: [ 15:30 jon@MacBookPro / ]$ , necesita abrir una Terminal y ejecutar el command después de $ .

No se eliminan o eliminan files o directorys en este process, por lo que es fácil deshacer si necesita comstackr con LLVM en el futuro.

  1. Descargue – pero no instale todavía – xcode_4.1_for_lion.dmg o xcode_4.1_for_snow_leopard.dmg

  2. Ahora, siga estos pasos para instalar Xcode 4.1 en / /Developer-4.1 4.1:

    1. Copia de security del directory de trabajo /Developer (donde está instalado Xcode 4.2)

    2.  [ 15:30 jon@MacBookPro / ]$ sudo mv -v /Developer /Developer-4.2 
  3. Ejecute el instalador Xcode 4.1 utilizando la location de installation pnetworkingeterminada ( /Developer )

  4. Mueva la nueva installation de Xcode 4.1 a /Developer-4.1 :

     [ 15:30 jon@MacBookPro / ]$ sudo mv -v /Developer /Developer-4.1 
  5. Mueva el directory de desarrollador Xcode 4.2 a /Developer :

     [ 15:30 jon@MacBookPro / ]$ sudo mv -v /Developer-4.2 /Developer 
  • Edite el file Xcode 4.2 GCC 4.2.xcspec para que gcc 4.2 se muestre en la list de opciones de comstackdor [1] :

     [ 15:30 jon@MacBookPro / ]$ sudo vi "/Developer/Library/Xcode/PrivatePlugIns/Xcode3Core.ideplugin/Contents/ShanetworkingSupport/Developer/Library/Xcode/Plug-ins/GCC 4.2 (Plausible Blocks).xcplugin/Contents/Resources/GCC 4.2.xcspec" 
    • Cambie las líneas 41 y 42 de esta:

       ShowInCompilerSelectionPopup = NO; IsNoLongerSupported = YES; 
    • A esto:

       ShowInCompilerSelectionPopup = YES; IsNoLongerSupported = NO; 
  • Copia de security de los directorys usr Xcode 4.2 iOS / Simulator Framework:

     [ 15:30 jon@MacBookPro / ]$ sudo mv -v /Developer/Platforms/iPhoneOS.platform/Developer/usr /Developer/Platforms/iPhoneOS.platform/Developer/usr.backup [ 15:30 jon@MacBookPro / ]$ sudo mv -v /Developer/Platforms/iPhoneSimulator.platform/Developer/usr /Developer/Platforms/iPhoneSimulator.platform/Developer/usr.backup 
  • Copie los directorys usr Xcode 4.1 iOS / Simulator Framework a Xcode 4.2:

     [ 15:30 jon@MacBookPro / ]$ sudo cp -rv /Developer-4.1/Platforms/iPhoneOS.platform/Developer/usr /Developer/Platforms/iPhoneOS.platform/Developer/usr [ 15:30 jon@MacBookPro / ]$ sudo cp -rv /Developer-4.1/usr /Developer/Platforms/iPhoneSimulator.platform/Developer/usr 
  • Copie los directorys de biblioteca de gcc e info iOS SDK de Xcode 4.1 a Xcode 4.2 [2] :

     [ 15:30 jon@MacBookPro / ]$ sudo cp -rv /Developer-4.1/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.3.sdk/usr/lib/gcc /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk/usr/lib/gcc [ 15:30 jon@MacBookPro / ]$ sudo cp -rv /Developer-4.1/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.3.sdk/usr/lib/info /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk/usr/lib/info 
  • Compile usando gcc-4.2!

    Captura de pantalla de CGG 4.2 en xcode 4.2


  • Esta es una publicación de blog que he escrito con un poco más de información sobre este process. Siéntase libre de dejar un comentario en el blog si tiene problemas o si tiene alguna pregunta.


    [1] Si se abre desde una línea de command (utilizando algo así como vi , emacs , nano , etc.), asegúrese de include la ruta entre comillas "/ long path / with spaces / in it / file.xcspec" o escaping de los espacios / some / long \ path / with \ spaces / in \ it / file.xcspec

    [2] Esto es necesario porque el SDK de iPhoneOS.platform tiene sus propios directorys separados /usr/lib , pero el SDK de iPhoneSimulator.platform no lo hace

    En estos años, WWDC, Apple declaró que GCC ya no está disponible en XCode 4.2. Sin embargo, declararon que el comstackdor LLVM admite los mismos conmutadores de command-line que GCC.

    Traté de actualizar esto para la versión aplicada de Xcode. Esto mostrará cómo instalar Xcode 4.4.x con soporte completo de gcc.

    Necesita: Mac OSX Lion: ¡esto es importante, no intente con Mountain Lion!

    Necesita: una copy de Xcode 4.1 para Lion. Descarga desde Apple con tu count dev. No la instales todavía.

    Ahora instale Xcode 4.4.x desde Apple a través de Mac App Store.

    Una vez hecho esto, tendrá xcode 4.4.x en su directory de aplicaciones.

    Según los derechos de usuario, deberá confirmar muchas de las acciones con su contraseña de administrador. Solo hágalo cuando sea necesario. Si dañas tu sistema, estás solo (eso no debería suceder, ya que Xcode se ha aplicado).

    Abra Xcode 4.4.x con el button derecho del mouse y "Mostrar contenido del package" y luego navegue hasta el complemento gcc 4.2 aquí:

    /Applications/Xcode.app/Contents/PlugIns/Xcode3Core.ideplugin/Contents/ShanetworkingSupport/Developer/Library/Xcode/Plug-ins/GCC 4.2.xcplugin / Contents / Resources /

    Abra el file gcc 4.2.xcspec con un editor de text.

    Mire las líneas 41 y 42. Asegúrese de que se vean exactamente como se presentan aquí (los valores se invertirán en una installation nueva).

     ShowInCompilerSelectionPopup = YES; IsNoLongerSupported = NO; 

    Guardar y cerrar.

    Instalar Xcode 4.1 para Lion.

    Ahora navegue hasta el directory de desarrolladores en la raíz de su unidad de arranque.

    Navega a /Developer/Platforms/iPhoneOS.platform/Developer/usr/

    copie el directory usr con command-c

    cambiar de nuevo a xcode 4.4.x

    navegue hasta: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/

    pegue el directory usr con command-v

    Ahora Lion intentará fusionar los dos directorys. Asegúrate de presionar "Keep Newer"

    Repite con la fuente: /Developer/Platforms/iPhoneSimulator.platform/Developer/usr Y destino: /Applications/Xcode.app/Contents/Developer/Platforms/usr

    Nuevamente, fusionar y "Mantener más nuevo"

    Navegue a: / Developer / Platforms / iPhoneOS.platform/Developer/SDKs/iPhoneOS4.3.sdk/usr/lib

    Ahora copie el directory gcc seleccionándolo y usando el command-c

    Navega a la aplicación Xcode 4.4.x:

    /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.1.sdk/usr/lib

    Pegue el directory gcc con command-v

    Repite desde /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.3.sdk/usr/lib con el destino del directory 'info' nuevamente /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer /SDKs/iPhoneOS5.1.sdk/usr/lib

    Hecho. Ejecute xcode y elija GCC 4.2 en configuraciones cuando sea necesario. Debe eliminar el directory "Desarrollador" obsoleto.

    Xcode ahora también debería aceptar actualizaciones a través de Mac App Store nuevamente (esto aún no se ha probado). Tampoco descargué herramientas de command-line, pero creo que sobrevivirá también.