0Pricing
C Academy · Ders

Birden Çok Dosyayı Derleme

Çok dosyalı bir program oluşturun.

Birden Çok Dosyayı Derleme, CoddyKit'te ücretsiz bir C Academy dersidir. Bu, 4 dersinin 4. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, C Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. C Academy kursu toplamda 4 dersten oluşur.

Kaynaktan Programa

Birden çok dosyadan oluşan C kaynak kodunu çalıştırılabilir bir dosyaya dönüştürme iki aşamada gerçekleşir: derleme ve bağlama.

Her .c dosyası ayrı ayrı bir nesne dosyasına derlenir. Ardından bağlayıcı, nesne dosyalarının tümünü birleştirir, aralarındaki başvuruları çözümler ve tek bir çalıştırılabilir program oluşturur.

Tek Komutla Derleme

En basit yaklaşım, tüm kaynak dosyalarını aynı anda gcc'ye vermektir. Derleyici her birini oluşturur, ardından bunları otomatik olarak bağlar.

-o seçeneği, çıktı programının adını belirtir. Tüm .c dosyalarını listeleyin; başlık dosyaları #include aracılığıyla eklenir ve burada listelenmez.

gcc main.c math_utils.c -o app

Ayrı Derleme

Daha büyük projelerde her dosyayı -c ile bir nesne dosyasına derleyin. Bu işlem bir .o dosyası oluşturur ancak bağlama yapmaz.

Ayrı derleme sayesinde yalnızca bir kaynak dosyası değiştiğinde sadece o dosyayı yeniden derlemeniz gerekir; bu da büyük derlemeleri hızlandırır.

gcc -c main.c        /* produces main.o */
gcc -c math_utils.c  /* produces math_utils.o */

Bağlama Aşaması

Nesne dosyalarınız hazır olduğunda bunları bir çalıştırılabilir dosyaya bağlayın. Burada gcc, nesneleri birleştirip dosyalar arası sembolleri çözümleyen bağlayıcı görevi görür.

Bu kez -c kullanmayın; çünkü başka bir nesne dosyası değil, son programı istiyoruz.

gcc main.o math_utils.o -o app

Bağlayıcı Ne Yapar

Bağlayıcı, bir sembolün her kullanımını onun tanımıyla eşleştirir.

main.o, add'i çağırdığında bağlayıcı math_utils.o içinde tanımlanan add'i bulur ve ikisini birbirine bağlar. Ayrıca programınızın ihtiyaç duyduğu standart kütüphane kodunu da ekler.

Tanımsız Başvuru Hataları

Bağlama sırasında bir nesne dosyasını unutursanız bağlayıcı bir tanım bulamaz ve tanımsız başvuru bildirir.

Bu, derleme hatası değil, bağlama zamanı hatasıdır: her dosya başarıyla derlenmiştir, ancak son komutta gereken bir tanım eksiktir.

gcc main.o -o app
/* undefined reference to `add' */
/* fix: include math_utils.o */

Yararlı Uyarı Seçenekleri

Her zaman uyarıları etkinleştirerek derleyin. -Wall ve -Wextra, olası hataları erkenden ortaya çıkarır.

-std=c11 eklemek, derleyiciler arasında davranışın öngörülebilir olması için bir dil standardı seçer. Bu seçenekler ister tek adımda ister ayrı ayrı derleme yapın, çalışır.

gcc -Wall -Wextra -std=c11 -c main.c
gcc -Wall -Wextra -std=c11 -c math_utils.c
gcc main.o math_utils.o -o app

Ekleme Yolları

Başlık dosyaları başka bir dizinde bulunduğunda, -I ile derleyiciye nereye bakacağını bildirin.

Örneğin -Iinclude, arama yoluna bir include/ klasörü ekler; böylece #include "math_utils.h", farklı bir klasörden bile çözümlenir.

gcc -Iinclude -c src/main.c -o build/main.o

Yeniden Derleme Neden Önemlidir

Ayrı derleme, yalnızca bir dosya değiştiğinde büyük avantaj sağlar. Yalnızca o dosyanın nesnesini yeniden derler, ardından yeniden bağlarsınız.

Ancak bir başlık dosyasını düzenlerseniz onu içeren her kaynak dosyası yeniden derlenmelidir; çünkü başlık dosyasının metni bu dosyaların her birinin parçasıdır.

/* edited math_utils.c only */
gcc -c math_utils.c
gcc main.o math_utils.o -o app

make ile Otomasyon

Komutları elle yazmak zamanla yorucu olur. Bir Makefile, kuralları kaydeder ve yalnızca değişenleri yeniden oluşturur.

Bu basit örnek iki nesneyi app içinde birbirine bağlar; make, neyin yeniden derleneceğine karar vermek için dosya zaman damgalarını izler.

app: main.o math_utils.o
	gcc main.o math_utils.o -o app

main.o: main.c math_utils.h
	gcc -c main.c

Derlemenin Tam Özeti

Uyarılar açıkken, nesne dosyalarından tamamlanmış bir programa kadar küçük bir projenin tüm akışı şöyledir.

Her kaynağı derleyin, ardından nesneleri bağlayın. Baştan sona doğru çalıştığını doğrulamak için sonucu çalıştırın.

gcc -Wall -c main.c
gcc -Wall -c math_utils.c
gcc main.o math_utils.o -o app
./app

Hızlı Kontrol

Birden çok dosyalı derleme sürecindeki anlayışınızı kontrol edin.

Özet

Her .c dosyasını -c ile bir nesneye derlemeyi, ardından nesneleri bir programa bağlamayı öğrendiniz. Uyarılar ve ekleme yolları için -Wall ve -I kullanın.

Tanımsız başvurular, bağlama zamanında eksik bir nesne olduğu anlamına gelir. make gibi araçlar yalnızca değişenleri yeniden oluşturma işini otomatikleştirir.

Sıkça Sorulan Sorular

“Birden Çok Dosyayı Derleme” dersi ücretsiz mi?

Evet — “Birden Çok Dosyayı Derleme” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve C Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. C Academy kursu toplamda 4 dersten oluşur.

“Birden Çok Dosyayı Derleme” dersinde ne öğreneceğim?

Çok dosyalı bir program oluşturun. C Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

C Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te C Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 4. dersidir.

“Birden Çok Dosyayı Derleme” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu C Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her C Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Başlık ve Kaynak Dosyaları
  2. Ekleme Koruyucuları
  3. extern ve Bağlama
  4. Birden Çok Dosyayı Derleme
← C Academy Sayfasına Dön