make/makefile
make/makefile: 项目自动化构建工具
makefile:普通文本文件,记录了项目的构建流程规则。
make: 一个解释程序,到当前执行make命令的目录下寻找makefile文件,并且对makefile 中记录的项目构建规则进行解释执行。
makefile: 编写规则
目标对象:依赖对象[tab]命令操作
Make执行规则
解释执行时,在makefile中寻找目标对象(只寻找第一个目标对象),找到目标对象后,执行命令操作
生成两个程序
但是只生成一个
如果有目标对象,判断对象是否存在?:
如果目标对象不存在:执行命令操作—生成目标对象
如果目标对象已存在: 判断是否有依赖对象?
没有依赖对象:直接报错(目标最新)-不需要重新生成
如果有依赖对象:判断依赖对象是否存在?
依赖对象存在:通过目标对象和依赖对象大的最后一次修改时间判断是否需要重新生成目标对象
依赖对象不存在:make继续在makefile中寻找依赖对象的生成规则,先生成依赖对象,进而生成目标对象
预定义变量
预定义变量:
$@:目标对象$^:所有依赖对象$<:依赖对象的第一个
%通配符
不用手动添加每一个目标对象生成规则
(wildcard 目录名) 获取当前目录
(patsusbst 目录名 ,目录名,变量) 字符串替换
**尾对象:目标对象每次都需要重新执行(不管是否存在,是否更新)
声明尾对象:.PHONY**