Lessico IT › Programmazione › Cross-compiler

Cross-compiler

Programmazione Svenska → Aggiornato: 2026-11-02

Un compilatore che gira su un'architettura ma produce codice per un'altra.

Un microcontrollore con 64 KB di flash non può eseguire GCC, perciò il codice viene compilato su un PC e poi trasferito sulla scheda. La toolchain si identifica con un target triplet: arm-none-eabi significa ARM, nessun sistema operativo, ABI embedded. Comprende non solo il compilatore ma anche assembler, linker, una libreria C costruita per il target e un linker script che sa dove si trova la memoria.

Il classico mal di testa è confondere host e target: sistemi di build che eseguono programmi di prova durante la configurazione, header di /usr/include dell'host che si infilano nel progetto, una libreria collegata per x86. GCC richiede un compilatore costruito separatamente per ciascun target, mentre Clang/LLVM sceglie il target con un'opzione: è uno dei motivi per cui Zig e Rust si compilano in modo incrociato con pochissime cerimonie. Il risultato viene spesso provato in QEMU prima di tirare fuori una scheda vera.

← Torna al lessico