Fail Make ialah fail yang digunakan oleh alat buat untuk mengautomasikan penyusunan atur cara. Berikut ialah peraturan standard dan amalan terbaik untuk menulis Makefile yang berkesan:
target: prerequisites command
Peraturan lalai: Sasaran pertama dalam Makefile ialah yang akan dibina secara lalai.
Menyusun fail sumber:
CC = gcc CFLAGS = -Wall -g SOURCES = main.c utils.c OBJECTS = $(SOURCES:.c=.o) TARGET = mon_programme $(TARGET): $(OBJECTS) $(CC) -o $@ $^ %.o: %.c $(CC) $(CFLAGS) -c $< -o $@
.PHONY: clean clean: rm -f $(OBJECTS) $(TARGET)
CC = gcc CFLAGS = -Wall
Pengurusan pergantungan: Menggunakan peraturan dan corak tersirat untuk mengurangkan pengulangan.
Kebergantungan automatik: Anda boleh menjana kebergantungan secara automatik untuk fail .o.
-include $(OBJECTS:.o=.d)
Berikut ialah contoh Makefile lengkap:
# Variables CC = gcc CFLAGS = -Wall -g SOURCES = main.c utils.c OBJECTS = $(SOURCES:.c=.o) TARGET = mon_programme # Règle par défaut all: $(TARGET) # Lien de l'exécutable # $@ -> $(TARGET) # $^ -> $(OBJECTS) $(TARGET): $(OBJECTS) $(CC) -o $@ $^ # Compilation des fichiers .c en .o # $< -> Premier element des pr %.o: %.c $(CC) $(CFLAGS) -c $< -o $@ # Déclaration des cibles phony .PHONY: all clean fclean re # Nettoyage des fichiers objets clean: rm -f $(OBJECTS) # Nettoyage complet (fichiers objets et exécutable) fclean: clean rm -f $(TARGET) # Refaire la compilation re: fclean all
Inden dengan tab: Perintah dalam peraturan harus diinden dengan tab, bukan ruang.
Kod ulasan: Menggunakan ulasan untuk menerangkan bahagian Makefile.
Fail kumpulan: Jika projek anda mengandungi berbilang fail, susunkannya ke dalam subdirektori dan gunakan pembolehubah untuk mengurus laluan.
Gunakan peraturan tersirat: Manfaatkan peraturan terbina dalam make untuk mengelak daripada menulis semula peraturan biasa.
Elakkan konflik: Jika fail dengan nama yang sama dengan sasaran wujud, make akan berfikir bahawa sasaran adalah terkini dan tidak akan melaksanakan arahan yang berkaitan. .PHONY mengelak perkara ini.
Prestasi yang dipertingkatkan:Sasaran palsu sentiasa dianggap "untuk dilakukan", yang boleh meningkatkan kelajuan pelaksanaan perintah yang berkaitan.
Kecekapan: Menggunakan %.o:%c membolehkan anda mendapat manfaat daripada membuat pengoptimuman untuk hanya menyusun semula perkara yang diperlukan.
Praktikal: Untuk projek yang lebih besar, %.o:%c adalah lebih sesuai.
Fail Make yang tersusun dengan baik menjadikan pengurusan projek lebih mudah dan mengelakkan ralat penyusunan. Dengan mematuhi peraturan dan amalan terbaik ini, anda boleh mencipta Makefile yang cekap dan boleh diselenggara.
Atas ialah kandungan terperinci Memahami Makefile (Contoh dengan bahasa C).. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!