Sobes.tech
Junior — Middle

Como é que o processo de cross-compilação é realizado para diferentes plataformas de destino?

sobes.tech IA

Resposta da IA

A cross-compilação é o processo de compilar código fonte numa plataforma (hospedeiro) para executar numa outra (destino). Para diferentes plataformas alvo, geralmente é utilizado um compilador cruzado especializado que conhece a arquitetura e as características do sistema alvo.

O processo inclui os seguintes passos:

  1. Configuração do compilador cruzado — escolhe-se um compilador que suporte a arquitetura alvo (por exemplo, arm-linux-gnueabi para ARM).
  2. Configuração do ambiente de compilação — indicam-se os caminhos para as bibliotecas e ficheiros de cabeçalho da plataforma alvo.
  3. Compilação especificando a plataforma alvo — na linha de comando ou em scripts de compilação, definem-se as flags que indicam o destino.

Exemplo para Android NDK (compilação cruzada de código C/C++ para Android):

$ $NDK/toolchains/llvm/prebuilt/linux-x86_64/bin/clang --target=armv7a-linux-androideabi16 -c hello.c -o hello.o

Assim, o código fonte é compilado no hospedeiro, mas é criado um binário que funcionará na plataforma alvo.