Çapraz derleyici: Revizyonlar arasındaki fark

[kontrol edilmemiş revizyon][kontrol edilmemiş revizyon]
İçerik silindi İçerik eklendi
Loveless (mesaj | katkılar)
k Bot değişikliği Değiştiriliyor: cs:Křížový překladač
Xqbot (mesaj | katkılar)
k Bot değişikliği Değiştiriliyor: fa:ترجمه‌ی دوگانه; Kozmetik değişiklikler
7. satı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 sistemi]]nin birkaç farklı [[versiyon]]unu 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.
13. satır:
* Yeni bir platforma [[bootsrapping]] 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 [[yerel derleyici]] (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üm]]lerin 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 <code> --target=some-target</code> parametresi geçirilerek derlenmelidir. Bunun ardından eğer binutils’ in oluşturduğu araçlar [[path]] ile tanımlı dizinde ise gcc’ yi derleme işlemi normal bir şekilde gerçekleştirilebilir. [[bash]] kullanan [[unix]] benzeri [[işletim sistem]]lerinde, 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üphane]]lerinin bulunmasını gerektirir. En azından kütüphanenin [[crt0]], ... parçalarının olması gereklidir. Diğer bir alternatif, [[C kütüphanesi]]nin kaynak dosyaları derlemek için gerekli sadece temel parçalarını içeren [[newlib]] kullanılmasıdır. gcc’ yi newlib ile yapılandırmak için configure betiğine <code>--with-newlib</code> parametresini geçirmek yeterli olur.
 
== Canadian Cross ==
 
Buda 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:
33. satır:
* ‘’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/
* http://gcc.gnu.org/wiki/Building%20Cross%20Toolchains%20with%20gcc
47. satır:
[[en:Cross compiler]]
[[es:Compilador cruzado]]
[[fa:همگردانیترجمه‌ی دوگانه]]
[[fr:Compilateur#Compilateur croisé]]
[[it:Cross compiler]]