Un compilador cruzado es un recopilador capaz de crear el código ejecutable para una plataforma con excepción de el en el cual se funciona con el recopilador. Las herramientas del compilador cruzado se encuentran generalmente que funcionando generar compila para el sistema encajado o las plataformas múltiples. Es una herramienta que una debe utilizar para una plataforma donde está incómodo o imposible compilar en esa plataforma, como los microcontroladores que funcionan con una cantidad mínima de memoria para su propio propósito. Ha llegado a ser más común para utilizar esta herramienta para el Paravirtualization donde un sistema puede tener uno o más plataformas funcionando.

Aplicaciones de compiladores cruzados

El uso fundamental de un compilador cruzado es separar el ambiente de la estructura del ambiente de la blanco. Esto es útil en un número de situaciones:
Computadoras encajadas donde un dispositivo tiene recursos extremadamente limitados. Por ejemplo, un horno microondas tendrá una computadora extremadamente pequeña para leer su touchpad y el sensor de la puerta, proporciona salida a un indicador digital y a un altavoz, y controlar la maquinaria para cocinar el alimento. Esta computadora no será bastante de gran alcance funcionar un recopilador, un sistema de ficheros, o un entorno de desarrollo. Desde el depuración y la prueba puede también requerir más recursos que disponible en un sistema encajado, el cross-compilation puede ser errores menos implicados y propensos que compilación nativa.
Compilación para las máquinas múltiples. Por ejemplo, una compañía puede desear apoyar varias diversas versiones de un sistema operativo o apoyar varios diversos sistemas operativos. Usando un compilador cruzado, un solo ambiente de la estructura se puede fijar para compilar para cada uno de estas blancos.
Compilación en una granja del servidor. Similar a la compilación para las máquinas múltiples, una estructura complicada que implica muchos compila operaciones se puede ejecutar a través de cualquier máquina que esté libre sin importar su marca de fábrica o versión actual de un sistema operativo.
que ata con correa a una nueva plataforma. Cuando desarrollar el software para una nueva plataforma, o el emulador de una plataforma futura, una utiliza un compilador cruzado para compilar las herramientas necesarias tales como el sistema operativo y un recopilador nativo.

El uso de las máquinas virtuales (tal como JVM de Java) resuelve algunas de las razones por las cuales los compiladores cruzados fueron desarrollados. El paradigma de la máquina virtual permite que la misma salida del recopilador sea utilizada a través de sistemas de objetivos múltiples.

La arquitectura de hardware diferencia típicamente (e. compilando un programa destinado para la arquitectura de las MIPS en una computadora X86 ) pero cross-compilation es también aplicable cuando solamente diferencia el ambiente del sistema operativo, como al compilar un programa de FreeBSD debajo del linux, o aún apenas la biblioteca de sistema, como cuando los programas de compilación con el UClibc en un anfitrión de Glibc .

GCC y compilación cruzada

el GCC, una colección del software libre de recopiladores, se puede fijar para cruzar compila. Apoya muchas plataformas e idiomas. Sin embargo, debido a la época voluntaria limitada y a la enorme cantidad de trabajo que toma para mantener compiladores cruzados de trabajo, en muchos lanzamientos algunos de los compiladores cruzados están quebrados.

El GCC requiere que una copia compilada Binutils esté disponible para cada plataforma apuntada. Especialmente importante es el ensamblador del GNU. Por lo tanto, los binutils primero tienen que ser compilados correctamente con el del interruptor--target=some-target enviados al configuran la escritura . El GCC también tiene que ser configurado con el mismo --opción de target. El GCC puede entonces ser funcionado normalmente a condición de que las herramientas, que el Binutils crea, están disponibles en la trayectoria, que se puede hacer usar el siguiente (en UNIX-como sistemas operativos con golpe):

PATH=/path/to/binutils/bin: $PATH; hacer

El GCC de compilación cruzado requiere que una porción de la biblioteca estándar C del platform s de la blanco del esté disponible en la plataforma del anfitrión del . Por lo menos el Crt0 ,… los componentes de la biblioteca debe estar disponible. Usted puede elegir compilar la biblioteca de C llena, pero ésa puede ser demasiado grande para muchas plataformas. La alternativa es utilizar el Newlib, que es una pequeña biblioteca de C que contiene solamente los componentes más esenciales requeridos para compilar código fuente C . Para configurar el GCC con el newlib, utilizar el del interruptor--with-newlib.

Los paquetes de los autotools del GNU (es decir Autoconf, Automake, y Libtool ) utilizan la noción de una plataforma de la estructura del, de una plataforma del anfitrión del, y de una plataforma de la blanco del . La plataforma de la estructura del es donde el código se compila realmente. La plataforma del anfitrión del es donde el código compilado ejecutará. La plataforma de la blanco del se aplica generalmente solamente a los recopiladores. Representa qué tipo de código de objeto producirá el paquete sí mismo (por ejemplo la cruz-compilación de un compilador cruzado); si no el ajuste de la plataforma de la blanco del es inaplicable. Por ejemplo, considerar cruz-compilar un juego video que funcione en un Dreamcast . La máquina donde se compila el juego es la plataforma de la estructura del mientras que el Dreamcast es la plataforma del anfitrión del .

Cruz canadiense

La cruz canadiense es una técnica para construir los compiladores cruzados para otras máquinas. Dado tres máquinas A, B, y C, una utiliza la máquina A para construir un compilador cruzado que funcione en la máquina B para crear los executables para la máquina C. Al usar la cruz canadiense con el GCC, puede haber cuatro recopiladores implicados:

el recopilador nativo propietario del para la máquina A (1) se utiliza para construir el recopilador nativo del GCC del para la máquina A (2) .
El recopilador nativo del GCC del para la máquina A (2) se utiliza para construir el compilador cruzado del GCC del de la máquina A para trabajar a máquina B (3)
El compilador cruzado del GCC del de la máquina A para trabajar a máquina B (3) se utiliza para construir el compilador cruzado del GCC del de la máquina B para trabajar a máquina C (4)

El compilador cruzado del resultado final (4) no podrá funcionar en su máquina A de la estructura; en lugar usted lo utilizaría en la máquina B para compilar un uso en el código ejecutable que después sería copiado para trabajar a máquina C y ejecutado en la máquina C.

Por ejemplo, el NetBSD proporciona una cáscara de Unix POSIX build.sh" nombrado escritura; cuál primero construirá su propio Toolchain con el recopilador del anfitrión; esto, alternadamente, será utilizada para construir el compilador cruzado que será utilizado para construir el sistema entero.

El del término que ocurrió la cruz canadiense porque ese estas ediciones eran en ese entonces todas que eran desmenuzadas hacia fuera, Canadá tenía tres partidos políticos nacionales.

Ver también

Recopilador

.

  • Zenithic
  • SMS Elbing
    Random links:Lee (nombre coreano) | Andrzej Munk | Charlie Brooker | 99942 Apophis | Aero- California

  • © 2007-2008 enciclopediaespana.com; article text available under the terms of GFDL, from en.wikipedia.org
    ="http://pagead2.googlesyndication.com/pagead/show_ads.js">