CodeBlanks Logo Icon CodeBlanks

Makefile temelleri

  • C kursu
  • Orta seviye
  • Ders 62/116
  • 5 dk

Makefile ile derleme otomasyonu öğrenirsin.

Makefile nedir?

Makefile, make aracının okuduğu derleme tarifleri dosyasıdır. Çok dosyalı C projelerinde her dosyayı tek tek derlemek yorucudur; Makefile bu işi otomatikleştirir. Her bölüm bir hedef, bağımlılıklar ve tarif satırından oluşur.

Biçim: app: main.c utils.c (hedef: bağımlılıklar), sonraki satır TAB ile başlar ve gcc -o app main.c utils.c tarifini içerir. make app komutu hedefi üretir. Makefile, değişen dosyaları algılar; yalnızca gerekli derlemeleri yapar. Bu yüzden büyük projelerde zaman kazandırır.

Değişkenler ve clean

Makefile'da değişken tanımlanır: CC = gcc, CFLAGS = -Wall -g. Tarifte $(CC) $(CFLAGS) -o app main.c biçiminde kullanılır. Bu, derleyici ve bayrakları tek yerden değiştirmeyi sağlar.

Yaygın bir hedef clean'dir: clean: altında rm -f app *.o yazılır. make clean derleme ürünlerini siler. Sahte hedefler (clean, all) için .PHONY: clean bildirimi önerilir; bu, dosya adıyla çakışmayı önler. Bu desen tüm C projelerinde standarttır.

Uygulama Makefile yaz

Bir Makefile yaz: CC = gcc değişkeni, app: main.c hedefi, TAB ile başlayan $(CC) -o app main.c tarifi, clean: hedefi ve TAB ile rm -f app tarifi. Çıktı gcc -o app main.c olmalı.

Başlangıç kodu

main.c
# Makefile: app ve clean hedeflerini yaz
# CC = gcc
# app: main.c
# 	$(CC) ile app'i derle
# clean:
# 	app'i sil

Örnek çözüm

main.c
CC = gcc
app: main.c
	$(CC) -o app main.c
clean:
	rm -f app

Beklenen çıktı

gcc -o app main.c

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Makefile tarif satırı nasıl başlamalı?

  • İki boşluk ile
  • Boşluk ile
  • TAB ile Doğru cevap
  • Yorum ile

Açıklama: Makefile tarif satırı TAB ile başlamak zorundadır.

2 Makefile hedefini tamamla

Soru
app: main.c utils.c
	gcc -o ____ main.c utils.c
Cevap
app: main.c utils.c
	gcc -o app main.c utils.c

Açıklama: gcc -o app main.c utils.c çıktı dosyasını app yapar.

3 Makefile parçalarını eşle

Kavram Anlamı
app: main.c Hedef ve bağımlılık
gcc ... Tarif satırı
CC = gcc Değişken tanımı
clean: Sahte hedef

Orta seviye bölümündeki tüm dersler