Compilație încrucișată

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare

Compilarea încrucișată este tehnica prin care un cod sursă este compilat cu un compilator încrucișat, obținându-se astfel un fișier binar care poate fi executat pe un computer cu o arhitectură diferită de cea a mașinii pe care a fost lansat însuși compilatorul încrucișat. Compilarea încrucișată este, de asemenea, utilizată atunci când este necesară compilarea unui program pentru un alt sistem de operare decât mașina pe care se află compilatorul și linker-ul . Mașina care rulează compilatorul încrucișat se numește gazdă, în timp ce mașina pe care va rula binarul obținut din procesul de compilare încrucișată se numește țintă .

Utilizări

Sisteme integrate

Această tehnică este de obicei utilizată pentru a compila aplicații pentru sisteme încorporate în care resursele sunt în general foarte limitate și, prin urmare, nu ar fi posibilă compilarea normală. În plus, multe sisteme încorporate, cum ar fi microcontrolerele , nu au niciun sistem de operare, cu excepția unui BIOS mic, deci nu este posibil să rulați niciun compilator sau linker pe aceste dispozitive.

Sisteme mari

Într-o companie mare sau într-o fermă de servere care are un grup neomogen de platforme hardware și / sau software , tehnica de compilare încrucișată este necesară atunci când noul software trebuie distribuit, mai ales în cazul utilizării diferitelor sisteme de operare .

Software de bază nou

Operațiile de scriere, compilare și conectare a noilor sisteme de operare trebuie să fie efectuate în mod necesar pe alte sisteme preexistente pentru a putea fi salvat pe un mediu de stocare extern, după generarea codului obiect , cu un sistem de fișiere citibil de BIOS și, prin urmare, să poată începe cel puțin prima schiță a noului sistem de operare, care acceptă compilarea și conectarea.

Compilatoare încrucișate GNU

Pentru o compilare încrucișată de bază cu instrumentele proiectului GNU este necesar să aveți un lanț de instrumente complet cu cross-compiler și binutils plus glibc , acesta din urmă fiind compilat și pentru a genera cod pentru țintă. Dacă, pe de altă parte, doriți să compilați aplicații mai complexe, cum ar fi aplicații grafice sau care, în orice caz, necesită biblioteci speciale suplimentare, trebuie să adăugați aceste biblioteci anterior compilate încrucișat în lanțul dvs. de instrumente .