Gcc ile basit bir hello.c kodunu derlerken gcc 4 aşamalı bir derleme gerçekleştirir.

1. aşama : Önişleme aşaması; bu aşamada #include gibi direktifler işlenir.Mesela #include direktifi işlenerek stdio.h dosyası kodumuza eklenir önişleme sonrasında .i son ekli bir bütün dosya oluşur yani direktiflerden arındırılmış,diğer .h dosyaları ile birleştirilmiş bir dosya oluşur dosya yine aynı adda oluşur çünkü o anda işlenen dosya odur.Şunu akıldan çıkarmamak gerekli bu önişleme işlemi her dosya için ayrı ayrıdır yani 1 den fazla .c dosyasına sahip bir programda her .c dosyası için ayrı işlem gerçekleştirilir.
2.Aşama : Derleme Aşaması ; bu aşamada .i uzantılı kaynak kodu (hala c kodu içeriyor) işlenir ve bu kod .s uzantılı assembly dili koduna dönüştürülür.Bu aşama genel ad olan derleme ile karıştırılmamalı bu aşamada C dili Assembly diline dönüştürülür.
3.Aşama : Assembly aşaması ; bir önceki aşamada oluşan .s uzantılı assembly kodu bu aşamada .o uzantılı obje dosyasına dönüştülür,obje dosyaları içinde fonksiyonların kodlarını ve fonksiyonların obje dosyasında hangi adreslerde başladığını belirten tablolarla doludur.Bu tablolar sayesinde derleme işleminin son aşaması tamamlanabilir.obje dosyası ELF,COFF gibi çeşitli formatlarda oalbilir Linux için ana format ELF dir.obje dosyaları binary dosyalardır yani bir text editörü ile açıldığında anlamsız rakam ve semboller görme ihtimalimiz yüksektir.
4.Aşama: Link Aşaması ; link aşaması,kodunuzun sonucunda oluşan .o uzantılı sizin kodlarınızı barındıran obje dosyası ile bu obje dosyasının ihtiyaç duyduğu diğer obje dosyalarını birleştirip,bir bütün program oluşturulduğu aşamadır.Bu aşama ile sisteminizde bulunan obje dosyaları sizinki ile birleştirilir ve ortaya çalıştırılaiblir bir dosya çıkar.
Bu aşamaların sonucunda oluşan dosyaları görmek mümkündür.gcc programını çalıştırırken gerekli parametreyi sağlarsanız bu 4 aşamalı derlemeden istediğiniz aşamaya kadar çalıştırılmasını sağlarsınız.Bu parametreler şunlardır
-E Sadece önişlem; derleme, çeviri ve ilintileme yapılmaz
-S Sadece derleme; çevirme ve bağlama yapılmaz
-c Derler ve çevirir ancak bağlamaz
Örneğin : gcc -E dersek 1.aşama gerçekleşir ve ortaya .i ile biten bir dosya çıkar.
Kategorisi: GCC, Linux, Programlama

[...] olurlar (örneğin makrolar ile bir satır kod ile bir kaç satırlık kodu temsil edebiliriz). http://yugruk.wordpress.com/2006/11/19/gcc-derleme-asamalari/ yazısında yazdığım aşamalardan ilki olan önişleme aşamasında C kodumuzdaki önişlemci [...]
Hocam sitenizi üç saattir okuyorum ve çok keyif aldım, çok dolu bir site. Emeğinize sağlık. Google Reader’imin Özgür Yazılım kategorisine ekledim sayfanızı. Tekrar emeğinize sağlık hiç boş yazı yok hepsi dolu dolu.
Paylaşımlarınızın devamını dilerim.
İyi çalışmalar.