在 Linux 的 Makefile 中,目標(biāo)是要生成的文件或執(zhí)行的操作
target: prerequisites
[TAB] recipe
target
是要生成的文件。prerequisites
是生成目標(biāo)所需的輸入文件。recipe
是生成目標(biāo)所需的命令(操作)。注意,命令前面需要有一個(gè)制表符(TAB)。例如,以下 Makefile 指定了一個(gè)名為 my_program
的目標(biāo),它依賴于 main.c
和 util.c
兩個(gè)源文件:
my_program: main.c util.c
gcc -o my_program main.c util.c
CC = gcc
CFLAGS = -Wall
OBJFILES = main.o util.o
my_program: $(OBJFILES)
$(CC) $(CFLAGS) -o my_program $(OBJFILES)
target_pattern: prerequisite_pattern
[TAB] recipe
例如,以下 Makefile 使用模式規(guī)則將所有 .c 文件編譯為 .o 文件:
CC = gcc
CFLAGS = -Wall
%.o: %.c
$(CC) $(CFLAGS) -c $< -o $@
.PHONY
聲明:.PHONY: clean
clean:
rm -f *.o my_program
在這個(gè)例子中,clean
是一個(gè)偽目標(biāo),它刪除所有 .o 文件和名為 my_program
的可執(zhí)行文件。
總之,Makefile 中的目標(biāo)可以通過(guò)顯式規(guī)則、隱式規(guī)則、模式規(guī)則和偽目標(biāo)來(lái)指定。根據(jù)項(xiàng)目的需求和復(fù)雜性,可以選擇合適的方法來(lái)定義目標(biāo)。