Cross-compilazione

tecnica mediante la quale si compila un codice sorgente con un cross-compilatore

La cross-compilazione è la tecnica mediante la quale si compila un codice sorgente con un cross-compilatore, ottenendo così un file binario eseguibile su di un elaboratore con architettura diversa da quella della macchina su cui si è lanciato il cross-compilatore stesso. Questa tecnica è usata solitamente per compilare applicazioni per sistemi embedded dove le risorse sono generalmente molto limitate e non sarebbe quindi possibile effettuare la normale compilazione. Inoltre molti sistemi embedded, come i microcontrollori, non possiedono nessun sistema operativo ad eccetto un piccolo BIOS, cosicchè non possa essere eseguito nessun compilatore o linker su questi dispositivi.

La cross-compilazione viene usata anche quando è necessario compilare un programma per un sistema operativo differente dalla macchina su cui si trova il compilatore e linker.

La macchina che esegue il cross-compilatore viene detta host mentre la macchina sulla quale si eseguirà il binario ottenuto dal processo di cross-compilazione è detta target.

Per una cross-compilazione di base con i tool del progetto GNU è necessario avere una toolchain completa di cross-compilatore e delle binutils più la glibc, questi ultimi compilati anch'essi per generare codice per il target. Nel caso invece che si vogliano compilare applicazioni più complesse, come le applicazioni grafiche o che necessitano comunque di particolari librerie extra, è necessario aggiungere alla propria toolchain anche queste librerie preventivamente cross-compilate.