定义变量的方法
(1)变量名=变量值 递归变量展开(几个变量共享一个值) //不常用
(2)变量名:=变量值 简单变量展开 //通常采用的形式
常用的变量
$@ : 当前规则的目标文件
$< : 当前规则的第一个依赖文件
$^ : 当前规则的所有依赖文件,以逗号分隔
$? : 规则中日期新于目标文件中的所有的相关文件列表,逗号分隔
$(@D) : 目标文件的目录名部分
$(@F) : 目标文件的文件名部分
隐含规则 :*.o 文件自动依赖*.c 或*.cc文件
OBJS:=main.o fun.o
CFLAGS:=-Wal -O2 -g
main.exe:$(OBJS)
gcc $^ -o $@
模式规则:通过匹配模式找字符串,%匹配1或多个任意字符串
%.o:%.c 任何目标文件的依赖文件是与目标文件同名的并且拓展为.c的文件
OBJS:=main.o fun.o
CFLAGS:=-Wal -O2 -g
main.exe:$(OBJS)
gcc $^ -o $@
%.o:%.cgcc -o $@ -c $^