iphone - instalar - Xcode 3.2.1 GCC CLANG y LLVM desmitificación
instalar clang windows (1)
El archivo Léame incluido con el nuevo Xcode 3.2.1 esta semana dice lo siguiente:
- El análisis de código estático está completamente integrado en el IDE de Xcode a través de la opción Generar y Analizar en el menú Compilar o mediante configuraciones de compilación personalizadas.
- GCC 4.2 es el compilador de sistema predeterminado para el SDK 10.6
- El compilador LLVM opcional se incluye con dos interfaces diferentes: el compilador Clang es un analizador de vanguardia que ofrece tiempos de compilación dramáticamente mejorados. Para una compatibilidad máxima, el compilador LLVM GCC utiliza el programa de fondo LLVM con el analizador GCC 4.2.
- El nuevo compilador opcional Clang-LLVM 1.0 utiliza el analizador de front-end Clang mucho más rápido junto con el compilador de fondo LLVM para compilaciones rápidas y código ejecutable rápido. Muchos proyectos se beneficiarán de esta combinación de compiladores, aunque GCC 4.2 sigue siendo el sistema predeterminado. El compilador Clang-LLVM 1.0 recurrirá a LLVM-GCC 4.2 cuando encuentre el código C ++.
Nuestra compañía tiene proyectos existentes que son puramente C, Objective-C y Objective-C ++ para escritorio y iphone. ¿Puede alguien resumir a alto nivel las diferencias entre LLVM, GCC, CLANG, CLANG-LLVM, WordFoo et. Alabama. y explicar qué son y cuándo deberíamos usar cada uno y para qué? Sería bueno tener enlaces a una explicación más detallada, pero realmente estoy buscando una descripción general de alto nivel.
En una palabra:
Los compiladores se dividen básicamente en dos partes. Uno es el front-end que contiene el analizador sintáctico y el análisis semántico para el lenguaje de programación. El front-end produce algún tipo de representación intermedia de su código. Luego está el backend que toma las cosas que el front-end produce, lo optimiza y eventualmente genera código ensamblador.
- GCC : compilador bien conocido, contiene ambos front-ends para varios idiomas y back-ends para muchas arquitecturas de procesador
- LLVM : un conjunto de back-ends para varias arquitecturas (y otras cosas de bajo nivel)
- clang : un nuevo front-end para C, Objective-C y C ++; utiliza los back-ends LLVM. Obtendrá errores y advertencias más legibles de su compilador y tiempos de compilación más cortos. También puede encontrar incompatibilidades o errores; clang es un proyecto muy joven.
- LLVM-GCC: front-end de GCC con el back-end de LLVM. El back-end de LLVM es más rápido que el de GCC.
El soporte de Clan de clang (Objective-) está lejos de ser completo, por lo que llama a llvm-gcc cuando encuentra un archivo fuente de C ++. También contiene el analizador estático que ahora está integrado en Xcode. Algunas personas dicen que el back-end de LLVM genera un código mejor que el de GCC pero su millaje puede variar. LLVM también admite optimizaciones de tiempo de enlace (que puede habilitar en la configuración del proyecto de Xcode). Pueden producir código más rápido.
Apple quiere reemplazar a GCC con clang en el futuro porque tienen una política contra el código con licencia GPLv3 (GCC 4.2 es la última versión que tiene licencia bajo GPLv2).