2.makefile的结构
makefile的意义
- makefile用于定义源文件间的依赖关系
- makefile说明如何编译各个源文件并生成可执行文件
makefile的基本结构
targets (目标)
- 通常是需要生成的目标文件名
- make所需执行的命令名称
targets可以包含多个目标,使用空格对多个目标进行分隔。不带参数时,make将以文件中定义的第一个目标作为这次运行的目标。
prerequisites (依赖)
- 当前目标所依赖的其他目标或文件
prerequisites可以包含多个依赖,使用空格对多个依赖进行分隔。
当有多个依赖目标,make会按从左到右(指在同一规则中)和从上到下(指在不同规则中的)的先后顺序先构建一个规则中的。
command (命令)
- 完成目标所需要指向的命令
注意事项:[Tab]键:’\t’,每一个命令行必须以[Tab]字符开始,因为[Tab]字符告诉make此行是一个命令行
targets : prerequisites
‘ \t’ command
makefile的依赖规则
- 当目标对应的文件不存在,执行对应命令
- 当依赖在时间上比目标更新,执行对应命令
- 当依赖关系连续发生时,对比依赖链上的每一个目标
示例代码:简单的makefile
all test : name
@echo "Hlleo,make"
name :
@echo "Shaw"
输出结果:
“Shaw”
“Hlleo,make”
注:在echo前面加上@,意思代表不打印执行命令,否则会打印echo "Hlleo,make"和echo “Shaw”