Você usa um compilador cruzado para produzir executáveis (ou objetos) para uma plataforma diferente do host local. O compilador nativo só produz binários nativos.
Qual é a diferença exata entre compilação cruzada e compilação nativa?
Você usa um compilador cruzado para produzir executáveis (ou objetos) para uma plataforma diferente do host local. O compilador nativo só produz binários nativos.
A compilação cruzada está compilando algo para um tipo de CPU diferente daquele em que você está executando. Um exemplo é a compilação de binários do ARM sob um sistema i386 ou a compilação de executáveis de 64 bits em um sistema de 32 bits.
Normalmente, você não poderá executar o que acabou de compilar ao compilar, até enviar os binários para o sistema ao qual eles pertencem.
A compilação nativa é quando você compila para a mesma arquitetura em que você está executando, que é a situação normal.
A compilação cruzada está criando uma plataforma (basicamente, uma combinação de sistema operacional, família de CPU e ABI) diferente daquela em que você está executando. Isso significa ter um compilador que seja executado em uma plataforma, mas tenha como alvo outra plataforma. Geralmente (há exceções a isso porque algumas plataformas têm camadas de compatibilidade) significa que você não pode simplesmente executar os binários que acabou de criar.
O compilador em si não é geralmente o grande problema na construção cruzada, o resto do sistema de construção é. O sistema de compilação precisa executar o compilador correto com as opções corretas. Muitos sistemas de compilação constroem e executam programas de teste para descobrir os detalhes do sistema em que estão sendo executados. Você não pode geralmente fazer isso se você está cruzando a construção. Muitos sistemas de construção usam programas que eles construíram para gerar coisas durante a construção, isso pode significar que seu sistema de construção precisa construir algumas coisas para a plataforma que você está construindo, algumas coisas para a plataforma que você está construindo e potencialmente algumas coisas para ambos.
Tags cross-compilation