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