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:
- Configuração do compilador cruzado — escolhe-se um compilador que suporte a arquitetura alvo (por exemplo, arm-linux-gnueabi para ARM).
- Configuração do ambiente de compilação — indicam-se os caminhos para as bibliotecas e ficheiros de cabeçalho da plataforma alvo.
- 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.