预定义变量的使用
- 自动变量
- $@
当前规则中出发命令被执行的目标 - $^
当前规则中的所有依赖 - $<
当前规则中的第一个依赖
- $@
自动变量使用示例:
all:first second third
@echo "\$$@ => $@"
@echo "$$^ => $^"
@echo "$$< => $<"
注意:
1、"$"对于makefile有特殊含义
* 输出时需要加上一个"$"进行转义
2、"$@"对于Bash Shell有特殊含义
* 输出时需要加上"\"进行转义
- 特殊变量
- $(MAKE)
当前make解释器的文件名 - $(MAKECMDGOALS)
命令行中指定的目标名(make的命令行参数) - $(MAKEFILE_LIST)
- make所需要处理的makefile文件列表
- 当前makefile的文件名总是位于列表的租后
- 文件名之间以空格进行分隔
- $(MAKE)
预定义变量示例1:
* $(MAKE_VERSION)
当前make解释器的版本
* $(CURDIR)
当前make解释器的工作目录
* $(>VARIABLES)
所有已经定义的变量名列表(预定义变量和自定义变量)
小结
* makefile提供了预定义变量供开发者使用
* 预定义变量的使用能够使得makefile的开发更高效
* 自动变量是makefile中最常见的元素
* 使用($.VARIABLES)能够获取所有的特殊变量
网友评论