Çapraz Derleyici üzerinde çalıştığı platformdan farklı olan platformlar için çalıştırılabilen kodlar üreten derleyicidir. Böyle bir araç, erişiminizde olmayan bir platform için kod derlenmesi gerektiğinde ya da böyle bir platform üzerinde kod derleme işleminin yapılmasının imkânsız olduğu (gömülü sistemlerde olduğu gibi, mikrokontrolörler minimum bellek ile çalıştığı için derleme imkânsız olur) durumlarda faydalı olabilir.
Çapraz Derleyicinin Kullanımı
Çapraz derleyicinin temel kullanımı çalışılan ortamın hedef ortamdan ayrılması şeklinde tanımlanabilir. Bu kullanım çeşitli durumlar için faydalıdır;
- Cihazın oldukça sınırlı kaynaklarının olduğu gömülü sistemler için kullanışlıdır. Bir mikro dalga fırının, ekranını okumak, kapı sensörünü izlemek, ekrana ve kulaklıklara çıkış vermek, pişirilen yemekler için kullanılan makineyi kontrol etmek için oldukça küçük bir bilgisayarı olacaktır. Bu bilgisayar bir derleyiciyi, dosya sistemini ya da herhangi bir geliştirme ortamını çalıştırmak için yeterince güçlü olamayacaktır.
- Birden çok makineye derleme yapmak için kullanışlıdır. Örneğin, bir şirket kullanılan işletim sisteminin birkaç farklı versiyonunu desteklemek ya da farklı işletim sistemlerini desteklemek isteyebilir. Çapraz derleyici kullanarak, tek bir çalışma ortamı üzerinde birden fazla hedef platform için derleme yapılabilir.
- Birden fazla makine için yapılan derleme işlemine benzer olarak, pek çok derleme işlemini gerektiren karmaşık bir kurulum, makinenin markasına veya işletim sisteminin tipine bakmaksızın herhangi bir makine üzerinden gerçekleştirilebilir.
- Yeni bir platforma yapılmasına olanak verir. Yeni bir platform ya da gelecek bir platformun emülatörü için yazılım geliştirilirken, tasarımcı işletim sistemi ve (native compiler) gibi gerekli araçları derlemek için çapraz derleyici kullanır.
GCC Çapraz Derleyici
‘’’gcc’’’ onlarca platformu ve yaygın olarak kullanılan programlama dillerini destekleyen bir çapraz derleyicidir. Bununla birlikte, derleyiciyi geliştirmeye çalışan gönüllü insanların sınırlı zamanları ve bir çapraz derleyiciyi çalışır hale getirmenin gerektirdiği uğraş, bazı sürümlerin hatalardan dolayı çalışmamasına neden olmaktadır.
gcc’ nin hedef platformlar için çalışması, hedef platform için hazırlanmış binutils’ in ikili dosyalarını gerektirmektedir. Bunlar arasında en önemli olanlardan biri GNU Assembler dır. Bu yüzden öncelikle binutils configure betiğine --target=some-target
parametresi geçirilerek derlenmelidir. Bunun ardından eğer binutils’ in oluşturduğu araçlar ile tanımlı dizinde ise gcc’ yi derleme işlemi normal bir şekilde gerçekleştirilebilir. bash kullanan unix benzeri işletim sistemlerinde, bahsedilen tanımlama aşağıdaki şekilde gerçekleştirilebilir;
PATH=/path/to/binutils/bin:$PATH; make
Çapraz derleme, derleme işleminin yapıldığı platform üzerinde hedef platform için bir takım standart C kütüphanelerinin bulunmasını gerektirir. En azından kütüphanenin , ... parçalarının olması gereklidir. Diğer bir alternatif, kaynak dosyaları derlemek için gerekli sadece temel parçalarını içeren kullanılmasıdır. gcc’ yi newlib ile yapılandırmak için configure betiğine --with-newlib
parametresini geçirmek yeterli olur.
Canadian Cross
Bu da farklı makineler için çapraz derleyici geliştirmenin yöntemlerinden biridir. Yani, B makinesi üzerinde çalışıp C makinesi için çalıştırılabilir kodlar üretecek çapraz derleyicinin A makinesi üzerinde geliştirilmesidir. Canadian Cross ile gcc kullanıldığı zaman, 4 derleyiciye ihtiyaç duyulabilir;
A makinesinde:
- ‘’A (1) makinesi için kullanılan yerel derleyiciyi’’ kullanarak ‘’A (2) makinesi için gcc yerel derleyicisi’’ elde edilir.
- ‘’A (2) makinesi için gcc yerel derleyicisini’’ kullanarak, ‘’B (3) makinesi için A makinesinden gcc çapraz derleyicisi’’ elde edilir.
- ‘’A makinesinden B (3) makinesi için elde edilen çapraz derleyici’’ kullanılarak, ‘’B makinesinden C (4) makinesi için gcc çapraz derleyicisi’’ elde edilir.
Burada dikkat edilmesi gereken nokta elde edilen derleyici A makinesinde çalışmayacaktır. B makinası üzerinde ‘’gcc çapraz derleyicisini kullanarak B makinesinde, C (4) makinesinde’’ çalışmak üzere kodlar derlendikten sonra elde edilen dosyalar C makinesine taşınıp çalıştırılmalıdır.
Dış bağlantılar
- http://www.kegel.com/crosstool/2 Temmuz 2006 tarihinde Wayback Machine sitesinde .
wikipedia, wiki, viki, vikipedia, oku, kitap, kütüphane, kütübhane, ara, ara bul, bul, herşey, ne arasanız burada,hikayeler, makale, kitaplar, öğren, wiki, bilgi, tarih, yukle, izle, telefon için, turk, türk, türkçe, turkce, nasıl yapılır, ne demek, nasıl, yapmak, yapılır, indir, ücretsiz, ücretsiz indir, bedava, bedava indir, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, resim, müzik, şarkı, film, film, oyun, oyunlar, mobil, cep telefonu, telefon, android, ios, apple, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, pc, web, computer, bilgisayar
Capraz Derleyici uzerinde calistigi platformdan farkli olan platformlar icin calistirilabilen kodlar ureten derleyicidir Boyle bir arac erisiminizde olmayan bir platform icin kod derlenmesi gerektiginde ya da boyle bir platform uzerinde kod derleme isleminin yapilmasinin imkansiz oldugu gomulu sistemlerde oldugu gibi mikrokontrolorler minimum bellek ile calistigi icin derleme imkansiz olur durumlarda faydali olabilir Capraz Derleyicinin KullanimiCapraz derleyicinin temel kullanimi calisilan ortamin hedef ortamdan ayrilmasi seklinde tanimlanabilir Bu kullanim cesitli durumlar icin faydalidir Cihazin oldukca sinirli kaynaklarinin oldugu gomulu sistemler icin kullanislidir Bir mikro dalga firinin ekranini okumak kapi sensorunu izlemek ekrana ve kulakliklara cikis vermek pisirilen yemekler icin kullanilan makineyi kontrol etmek icin oldukca kucuk bir bilgisayari olacaktir Bu bilgisayar bir derleyiciyi dosya sistemini ya da herhangi bir gelistirme ortamini calistirmak icin yeterince guclu olamayacaktir Birden cok makineye derleme yapmak icin kullanislidir Ornegin bir sirket kullanilan isletim sisteminin birkac farkli versiyonunu desteklemek ya da farkli isletim sistemlerini desteklemek isteyebilir Capraz derleyici kullanarak tek bir calisma ortami uzerinde birden fazla hedef platform icin derleme yapilabilir Birden fazla makine icin yapilan derleme islemine benzer olarak pek cok derleme islemini gerektiren karmasik bir kurulum makinenin markasina veya isletim sisteminin tipine bakmaksizin herhangi bir makine uzerinden gerceklestirilebilir Yeni bir platforma yapilmasina olanak verir Yeni bir platform ya da gelecek bir platformun emulatoru icin yazilim gelistirilirken tasarimci isletim sistemi ve native compiler gibi gerekli araclari derlemek icin capraz derleyici kullanir GCC Capraz Derleyici gcc onlarca platformu ve yaygin olarak kullanilan programlama dillerini destekleyen bir capraz derleyicidir Bununla birlikte derleyiciyi gelistirmeye calisan gonullu insanlarin sinirli zamanlari ve bir capraz derleyiciyi calisir hale getirmenin gerektirdigi ugras bazi surumlerin hatalardan dolayi calismamasina neden olmaktadir gcc nin hedef platformlar icin calismasi hedef platform icin hazirlanmis binutils in ikili dosyalarini gerektirmektedir Bunlar arasinda en onemli olanlardan biri GNU Assembler dir Bu yuzden oncelikle binutils configure betigine target some target parametresi gecirilerek derlenmelidir Bunun ardindan eger binutils in olusturdugu araclar ile tanimli dizinde ise gcc yi derleme islemi normal bir sekilde gerceklestirilebilir bash kullanan unix benzeri isletim sistemlerinde bahsedilen tanimlama asagidaki sekilde gerceklestirilebilir PATH path to binutils bin PATH make Capraz derleme derleme isleminin yapildigi platform uzerinde hedef platform icin bir takim standart C kutuphanelerinin bulunmasini gerektirir En azindan kutuphanenin parcalarinin olmasi gereklidir Diger bir alternatif kaynak dosyalari derlemek icin gerekli sadece temel parcalarini iceren kullanilmasidir gcc yi newlib ile yapilandirmak icin configure betigine with newlib parametresini gecirmek yeterli olur Canadian CrossBu da farkli makineler icin capraz derleyici gelistirmenin yontemlerinden biridir Yani B makinesi uzerinde calisip C makinesi icin calistirilabilir kodlar uretecek capraz derleyicinin A makinesi uzerinde gelistirilmesidir Canadian Cross ile gcc kullanildigi zaman 4 derleyiciye ihtiyac duyulabilir A makinesinde A 1 makinesi icin kullanilan yerel derleyiciyi kullanarak A 2 makinesi icin gcc yerel derleyicisi elde edilir A 2 makinesi icin gcc yerel derleyicisini kullanarak B 3 makinesi icin A makinesinden gcc capraz derleyicisi elde edilir A makinesinden B 3 makinesi icin elde edilen capraz derleyici kullanilarak B makinesinden C 4 makinesi icin gcc capraz derleyicisi elde edilir Burada dikkat edilmesi gereken nokta elde edilen derleyici A makinesinde calismayacaktir B makinasi uzerinde gcc capraz derleyicisini kullanarak B makinesinde C 4 makinesinde calismak uzere kodlar derlendikten sonra elde edilen dosyalar C makinesine tasinip calistirilmalidir Dis baglantilarhttp www kegel com crosstool 2 Temmuz 2006 tarihinde Wayback Machine sitesinde