Makefile文件是用來(lái)管理和自動(dòng)化程序編譯的工具,其中包含了一些規(guī)則和指令來(lái)告訴系統(tǒng)如何編譯和鏈接程序。在Ubuntu系統(tǒng)中,通常會(huì)遵循以下一些常見(jiàn)的規(guī)則:
CC = gcc
CFLAGS = -Wall -O2
main.o: main.c
$(CC) $(CFLAGS) -c -o $@ $<
這里的規(guī)則表示將main.c編譯成main.o文件,使用gcc編譯器和指定的編譯選項(xiàng)。
myprogram: main.o utils.o
$(CC) $(CFLAGS) -o $@ $^
這里的規(guī)則表示將main.o和utils.o鏈接成myprogram可執(zhí)行文件。
.PHONY: clean
clean:
rm -f *.o myprogram
這里定義了一個(gè)偽目標(biāo)clean,用來(lái)刪除所有的.o文件和最終生成的可執(zhí)行文件。
總的來(lái)說(shuō),在Ubuntu系統(tǒng)中的Makefile文件會(huì)包含一些變量、編譯規(guī)則、目標(biāo)規(guī)則和偽目標(biāo)規(guī)則,用來(lái)管理和自動(dòng)化程序的編譯過(guò)程。