makefile 格式 发表于 2021-05-05 | 分类于 Complie_and_Debug 字数统计: 316 | 阅读时长 ≈ 1《鬼灭之刃》 - 炭治郎¶makefile 格式¶方式一123456789101112131415161718192021# 是注释# 第一层:显示规则### 目标文件:依赖文件### 【Tab】 指令# 第一个目标文件是最终目标hello.exe: hello.o other.o gcc hello.o other.o -o hello.exehello.o: hello.c gcc -c hello.c -o hello.oother.o: other.c gcc -c other.c -o other.o# 伪目标:.PHONY:.PHONY:clean: rm -rf hello.o other.o hello.exe¶方式二123456789101112131415161718# 第二层# 变量 =(替换) +=(追加) :=(恒等于)TAR = hello.exeOBJ = hello.o other.oCC := gccRMRF := rm -rf$(TAR): $(OBJ) CC $(OBJ) -o $(TAR)hello.o: hello.c CC -c hello.c -o hello.oother.o: other.c CC -c other.c -o other.o .PHONY:clean: $(RMRF) $(OBJ) $(TAR)¶方式三123456789101112131415161718# 第三层 隐含规则 # %.c %.o *.c *.o # %(任意的) # *(所有的)TAR = hello.exeOBJ = hello.o other.oCC := gcc$(TAR): $(OBJ) $(CC) $(OBJ) -o $(TAR) %.o: %.c $(CC) -c %.c -o %.o .PHONY:clean: rm -rf $(OBJ) $(TAR)¶方式四123456789101112131415161718# 第四层 通配符# $^ 所有的依赖文件 # $@ 所有的目标文件# $< 所有依赖文件的第一个文件TAR = hello.exeOBJ = hello.o other.oCC := gcc$(TAR): $(OBJ) $(CC) $^ -o $@ %.o: %.c $(CC) -c $^ -o $@ .PHONY:clean: rm -rf $(OBJ) $(TAR)¶多可执行文件1234567891011121314151617181920212223242526# 多可执行文件# all hello.exe hello_1.exeTAR1 = hello.exeTAR2 = hello_1.exeOBJ1 = hello.o other.oOBJ2 = hello_1.o other_1.oCC := gcc# 关键是 all : %.exe %.exeall: hello.exe hello_1.exe$(TAR1): $(OBJ1) $(CC) $^ -o $@ $(TAR2): $(OBJ2) $(CC) $^ -o $@ %.o: %.c $(CC) -c $^ -o $@ .PHONY:clean: rm -rf $(OBJ1) $(OBJ2) $(TAR1) $(TAR2)----------- 本文结束 -----------