目标 :依赖
规则 命令
1 # VERSION1 2 #----------------------------------------------------- 3 #app: main.c add.c sub.c div.c mul.c 4 # gcc -o app -I ../include/ main.c add.c sub.c div.c mul.cVERSION2
8 # VERSTON2 9 #get all .c files makefile默认处理第一个目标 wildcard通配符 10 SrcFiles=$(wildcard *.c) 11 #all.c files -> .ofiles 12 objFiles=$(patsubst %.c,%.o,$(SrcFiles)) 13 14 all:app 15 #//目标文件用法$(var) $@代表目标 $^ 全部依赖 $<第一个依赖 $?第一个变化的依赖 16 app:$(objFiles) 17 gcc -o $@ -I ../include/ $(objFiles) 18 19 20 %.o:%.c 21 gcc -c $< -I ../include/ -o $@ 22 #模式匹配规则 $@,$<只能在makefile 中使用 ,-o $@可不加(明确指定生成xx.o文件,-c 也生成.o文件) 23 #依赖 规则可以不写 echo 显示该条指令 ( make test测试) 24 test: 25 @echo $(SrcFiles) 26 @echo $(objFiles) 27 28 #定义伪目标,防止有歧义(clean all伪目标只出现在makefile中) 29 .PHONY:clean all 30 31 #清理 .o和目标文件 前面加@ 不显示该条命令 前面加- 如果该条指令报错继续执行 32 clean: 33 -@rm -f *.o 34 -@rm -f app



