CC = gcc CFLAGS = -Wall -g # 默认目标,生成所有文件 all: main.i main.s main.o main # 预处理: 生成 main.i main.i: main.c $(CC) -E $< -o $@ # 编译: 生成汇编代码 main.s main.s: main.i $(CC) -S $< -o $@ # 汇编: 生成目标文件 main.o main.o: main.s $(CC) -c $< -o $@ # 链接: 生成可执行文件 main main: main.o $(CC) $< -o $@ # 清理所有生成的文件 clean: rm -f main.i main.s main.o main # .PHONY 表示这些目标不是文件名 .PHONY: all clean