Cross-compilazione: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica
Aggiungo portale.
 
(2 versioni intermedie di 2 utenti non mostrate)
Riga 2:
{{S|linguaggi di programmazione}}
 
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 (computer)|architettura]] diversa da quella della macchina su cui si è lanciato il cross-compilatore stesso. 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''.
 
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''.
 
== Usi ==
=== Sistemi Embedded ===
Questa tecnica è usata solitamente per compilare applicazioni per [[Sistema embedded|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 eccezione di un piccolo [[BIOS]], pertanto non è possibile eseguire nessun compilatore o linker su questi dispositivi.
 
=== Sistemi di grandi dimensioni ===
In una grande azienda o in una [[server farm]] che possiede un gruppo non omogeneo di piattaforme [[hardware]] e/o [[software]] si rende necessaria la tecnica della cross-compilazione quando deve essere distribuito un nuovo software, soprattutto nel caso dell'utilizzo di [[sistemi operativi]] differenti.
 
=== Nuovi software di base ===
Le operazioni di scrittura, compilazione e link di nuovi sistemi operativi devono essere necessariamente effettuate su altri sistemi preesistenti per poterlo salvare su un supporto di memorizzazione esterno, dopo aver generato il [[codice oggetto]], con un [[file system]] leggibile dal [[BIOS]] e poter quindi avviare almeno il primo abbozzo del nuovo sistema operativo, che supporti la compilazione e il linking.
 
== Cross Compilers GNU ==
Per una cross-compilazione di base con i tool del progetto [[GNU]] è necessario avere una [[toolchain]] completa di [[Cross_compiler|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.
 
{{Portale|informatica}}
 
[[Categoria:terminologia informatica]]