Cara Membuat Makefile SIMPLE C
Masalah:
Kita perlu mencipta Makefile untuk mengurus projek C kami, tetapi kami belum diajar cara melakukannya. Projek ini terdiri daripada satu fail, a3driver.cpp, yang mengimport kelas daripada /user/cse232/Examples/example32.sequence.cpp.
Penyelesaian:
1. Makefile Asas:
a3a.exe: a3driver.cpp example32.sequence.cpp g++ -g -o a3a.exe a3driver.cpp example32.sequence.cpp
Makefile ini menyatakan bahawa a3a.exe boleh laku bergantung pada fail sumber a3driver.cpp dan example32.sequence.cpp. Apabila dilaksanakan, ia akan melaksanakan arahan untuk menyusun atur cara ke dalam fail boleh laku.
2. Menggunakan Peraturan Terbina dalam:
CC=g++ CPPFLAGS=-g a3a.exe: a3driver.o example32.sequence.o $(CC) $(LDFLAGS) -o a3a.exe a3driver.o example32.sequence.o a3driver.o: a3driver.cpp $(CC) $(CPPFLAGS) -c a3driver.cpp example32.sequence.o: example32.sequence.cpp $(CC) $(CPPFLAGS) -c example32.sequence.cpp
Fail Make ini menggunakan peraturan terbina dalam untuk memudahkan arahan kompilasi. Ia mentakrifkan pembolehubah CC sebagai pengkompil C, dan pembolehubah CPPFLAGS dengan bendera kompilasi biasa. Kebergantungan masih ditakrifkan secara eksplisit, tetapi arahan kompilasi dijana secara automatik.
3. Menggunakan Ketergantungan Dijana Auto:
CC=g++ CPPFLAGS=-g a3a.exe: a3driver.o example32.sequence.o $(CC) $(LDFLAGS) -o a3a.exe a3driver.o example32.sequence.o depend: .depend .depend: $(SRCS) $(CC) $(CPPFLAGS) -MM $^ > .depend; .PHONY: clean clean: rm -f a3driver.o example32.sequence.o .depend include .depend
Fail Make ini menggunakan bendera -MM terbina dalam untuk menjana kebergantungan secara automatik. Sasaran bergantung melaksanakan perintah yang menjana fail .bergantung dengan kebergantungan. Sasaran .PHONY: bersih ialah sasaran khas yang sebenarnya bukan fail atau peraturan. Sasaran bersih mengalih keluar fail objek dan fail .depend.
Atas ialah kandungan terperinci Bagaimana untuk Mencipta Makefile C Mudah untuk Projek Fail Tunggal?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!