Log in


Forgot your password?
prijatelji LUGoNSa
gnu.gif
linuxzasve.jpg
hulk.jpg
zextras_logo.png
 
You are here: Home / Uputstva / Gentoo/Exherbo / Kompajliranje za različite arhitekture

Kompajliranje za različite arhitekture

by Goran Mekić last modified Jul 09, 2007 10:25 AM
Razvoj programa za različite arhitekture na jednom računaru

Kako kompajliranje radi

Ukoliko imate potrebu da razvijate nešto za arhitekturu koju ne posedujete, potrebni su Vam neki alati koji će generisati kod u formatu te arhitekture. Kompajliranje programa se izvodi u fazama. Prva faza proverava da li je fajl leksički ispravan. Ova faza se svodi na proveravanje karaktera jednog za drugim (nije tako jednostavno, ali na kraju ipak proveravate karakter po karakter). Druga faza proverava gramatičku ispravnost fajla u kome je program pisan. Naime, Vi možete napisati sve reči ispravno, ali njihov redosled pogrešno. To je ono što ova faza proverava. Treća faza generiše kod. Od svih faza, jedino treća mora biti specifično pisana za arhitekturu za koju se program kompajlira. Teoretski, mogli biste koristiti prve dve faze fašeg običnog kompajlera da biste proverili ispravnost fajla, a onda treću fazu nekog drugog kompajlera da biste generisali kod. Ovo je poprilično komplikovano za izvesti te se kompajliraju paketi (gcc, glibc, linux-headers i bintools) tako da rade prve dve faze kao i Vaši obični paketi, a treća faza generiše kod za ciljnu arhitekturu.


Zašto ne možete instalirati pakete sa ciljne arhitekture

Ako su paketi kompajlirani onako kako je gore opisano, format tih paketa je isti kao i svih drugih paketa. Drugim rečima, paketi se ne mogu pokrenuti na ciljnoj arhitekturi, samo je format koji oni generišu za ciljnu arhitekturu. Ako instalirate pakete za tu arhitekturu na Vašem sistemu, najverovatnije ćete dobiti neupotrebljiv sistem. Uprošćeno rečeno, Vi možete prepisivati arapske spise tako što Vam neko na srpskom objasni odakle dokle treba da prepišete, kojim alatima itd. ali to ne znači da ćete Vi i razumeti ono što ste upravo napisali. Upravo je to slučaj sa crossdev kompajliranjem. Jezik kojim se "objašnjava odakle dokle treba prepisati" na računaru je jezik Vaše arhitekture, a arapski je ciljna arhitektura. To je razlog zašto ne smete instalirati arapski na Vaš sistem i očekivati da će se snaći u papirologiji koju iziskuje Srbija. :o)

Document Actions