在 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 中的目标可以通过显式规则、隐式规则、模式规则和伪目标来指定。根据项目的需求和复杂性,可以选择合适的方法来定义目标。