Makefile管理项目
make:工程管理器,分析依赖于被依赖。执行的脚本makefile
命名:Makefile,makefile。优先调用makefile。
一个规则
目标:依赖条件
命令
- 目标生成时间必须晚于依赖生成时间,否则跟新目标。
- 如果依赖不存在,寻找新的规则生成依赖。
- All 指定Makefile的终极目标。
ALL :a.out
两个函数
src = $(wildcard *.c)
匹配当前目录下所有.c文件。将文件名列表赋值给src
obj = $(patsubst %.c %.o $(src))
将参数三中,包含参数一的部分替换为参数二。
clean:
-rm -rf $(obj) a.out
-
表示删除不存在文件时不报错。
make clean -n
表示不是真的执行,帮助你检查。
三个自动变量
$@
在规则的命令中表示目标。
$^
在规则的命令中表示所有的依赖条件。
$<
在规则的命令中表示第一个依赖条件。该变量如果用在模式规则中,表示将依赖条件列表中的依赖依次取出,套用模式规则。
模式规则
%.o : %.c
gcc -c $< -o $@
静态模式规则
($obj)%.o : %.c
gcc -c $< -o $@
伪目标
.PHONY: clean ALL
make -f 指定文件