makefile文件的使用

makefile文件的使用

简介

makefile是一个脚本文件,将命令整合到一起来执行,提高开发效率
使用它脚本名如果不指定-f参数那么脚本文件命名必须要使用 makefile or Makefile

一个规则

生成目标:生成目标对应的依赖
++++执行语句
注意:生成语句必须是换行后缩进4个空格

两个函数*

函数调用方法:$(函数名 args1, args2)
$(wildcard pattern):获取所有匹配的内容,返回一个列表
$(patsubst %, %, p3):获取某个列表中的所有值,并将参数1匹配到替换为参数二

三个变量

$^:获取一个规则中所有的依赖
$@:获取一个规则中生成的目标
$<:获取一个规则中第一个依赖,它还有一个特性就是在使用规则匹配时有多个依赖可以将他们都拆分开

[静态]规则匹配

%:%:匹配任意的规则
如: %.c:%.o表示匹配目标后缀为.c的以应依赖为.o
$(目标依赖文件) or t1,12....:%:%:在执行规则时,在执行到目标依赖文件时才会执行到该语句
例如:

1
2
3
4
5
6
7
8
# 规则
src = $(wildcard *.c)
obj = $(patsubst %.c, %.o, $(src))
a.out:$(obj)
gcc $(obj) -o $@

$(obj):%.o:%c
gcc $< -0 $@

其他

all:表示执行的最终目标
不是用它默认是第一条就是最终目标
clean:执行清理语句在执行的时候使用make clean -n来显示出要被清理文件执行直接去掉-n
make -f:表示指定要执行的makefile, 如果指定了它要执行clean就需要用make -f 指定的makefile clean 来执行