Cross-compilazione: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
PertBot (discussione | contributi)
m correggo link a file system
Aggiungo portale.
 
(14 versioni intermedie di 13 utenti non mostrate)
Riga 1:
{{F|linguaggi di programmazione|febbraio 2013}}
{{s|software}}
{{S|linguaggi di programmazione}}
 
La '''cross-compilazione''' è la tecnica mediante la quale si compila un [[codice sorgente]] con un cross-[[Cross_compiler|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_compiler|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_compiler|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 eccettoeccezione 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 tenicatecnica 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]]
[[Categoria:Compilatori]]
 
[[cs:Křížový překladač]]
[[de:Cross-Compiler]]
[[en:Cross compiler]]
[[es:Compilador cruzado]]
[[fa:ترجمه‌ی دوگانه]]
[[fr:Compilateur#Compilateur croisé]]
[[hy:Խաչաձև կազմարկիչ]]
[[ja:クロスコンパイラ]]
[[pl:Cross-kompilator]]
[[pt:Compilador cruzado]]
[[ru:Кросс-компилятор]]
[[tr:Çapraz derleyiciler]]
[[uk:Крос-компілятор]]
[[zh:交叉編譯器]]