Compilación cruzada: plataforma versus arquitectura

Compilación cruzada: plataforma versus arquitectura

¿Alguien podría explicar cuál es la definición precisa de compilación cruzada? Estoy preguntando esto porque.

  • Cuando un programa se compila en una plataforma (sistema operativo) diferente a la plataforma host en la que se compila el código, muchos se refieren a esto como compilación cruzada.

Por ejemplo: compilar para el brazo de Linux en Windows.

  • Por otro lado, si compila un programa en un escritorio Linux (arquitectura i386) para ejecutarlo en Linux arm (arquitectura ARM). ¿Este proceso se puede llamar compilación cruzada?

Gracias.

Respuesta1

El término plataforma incluye todos los detalles relacionados con la computadora en la que se compila o ejecuta el programa. Esto significa cosas como:

  • CPU: conjunto de instrucciones (x86, x86_64, ARM), endianess (big endian, littel endian)
  • compilador: lenguaje (por ejemplo, C90, C99, C11), proveedor (GCC, LLVM)
  • bibliotecas, por ejemplo glibc y BSD libc, malloc y jemalloc
  • Sistema operativo

Cuando la plataforma en la que se compila el programa es diferente de aquella en la que se ejecuta, se trata de una compilación cruzada. En tu caso específico la CPU es diferente.

información relacionada