Compilação Cruzada - Plataforma Vs Arquitetura

Compilação Cruzada - Plataforma Vs Arquitetura

Alguém poderia explicar qual é a definição precisa de compilação cruzada. Estou perguntando isso porque.

  • Quando um programa é compilado para uma plataforma (sistema operacional) diferente da plataforma host na qual o código é compilado, muitos se referem a isso como compilação cruzada.

Por exemplo: Compilando para braço Linux no Windows.

  • Por outro lado, se você compilar um programa em desktop Linux (arquitetura i386) para ser executado no braço Linux (arquitetura ARM). Este processo pode ser chamado de compilação cruzada?

Obrigado.

Responder1

O termo plataforma inclui todos os detalhes relativos ao computador no qual o programa é compilado e/ou executado. Isso significa coisas como:

  • CPU: conjunto de instruções (x86, x86_64, ARM), endianess (big endian, littel endian)
  • compilador: linguagem (por exemplo, C90, C99, C11), fornecedor (GCC, LLVM)
  • bibliotecas, por exemplo glibc e BSD libc, malloc e jemalloc
  • sistema operacional

Quando a plataforma na qual o programa é compilado é diferente daquela em que ele é executado, você está lidando com uma compilação cruzada. No seu caso específico, a CPU é diferente.

informação relacionada