Linux项目自动化构建工具-make/makefile
make是一个命令,
makefile是一个文件,保存依赖关系和依赖方法。‘
touch Makefile/makefile
mybin:mytest.c//依赖关系 目标文件:依赖文件列表 文件列表的文件之间以空格分隔
gcc -o mybin mytest.c//依赖方法 语法要求tab开头
例子:找老爹打电话要生活费
clean:
rm mybin
make clean
make后不加命令默认执行第一个,像上面的mybin和clean,当前顺序make执行mybin,make clean执行clean
调换顺序make mybin执行mybin,make执行clean
搜索第一次可以make目标文件,但第二次就无法make目标文件了
怎么知道最新:对比时间
对比目标文件的最近修改时间和原文件的最近修改时间,(看Modify时间)
依据:不人为修改时间不可能相同
多个源文件时,改一个就可以重新make目标文件了
文件的三个时间
stat查看文件的三个时间
Access:文件访问时间 不是每次都更新,提高系统整体效率
Modify:文件内容修改
Change:文件属性修改(一般Modify修改Change也修改,内容修改大小修改)
stat filename 查文件时间
//让mybin成为伪目标,总是被执行
.PHONY:mybin
可以一直make编译了
mybin:mytest.c
gcc -o $@ $^
//自动识别, @ 代表目标文件 , @代表目标文件, @代表目标文件,