makefile--预定义变量的使用

488 阅读1分钟

预定义变量的使用

  • 自动变量
    • $@ 当前规则中出发命令被执行的目标
    • $^ 当前规则中的所有依赖
    • $< 当前规则中的第一个依赖

自动变量使用示例:

all:first second third
    @echo "\$$@ => $@"
    @echo "?^ => $^"
    @echo "?< => $<"

注意:

1、"$"对于makefile有特殊含义
* 输出时需要加上一个"$"进行转义
2、"$@"对于Bash Shell有特殊含义
* 输出时需要加上"\"进行转义

  • 特殊变量
    • $(MAKE)
      当前make解释器的文件名
    • $(MAKECMDGOALS)
      命令行中指定的目标名(make的命令行参数)
    • $(MAKEFILE_LIST)
      • make所需要处理的makefile文件列表
      • 当前makefile的文件名总是位于列表的租后
      • 文件名之间以空格进行分隔

预定义变量示例1:

* (MAKE_VERSION)
        当前make解释器的版本
    *(CURDIR) 当前make解释器的工作目录 * $(>VARIABLES) 所有已经定义的变量名列表(预定义变量和自定义变量)

小结

* makefile提供了预定义变量供开发者使用
* 预定义变量的使用能够使得makefile的开发更高效
* 自动变量是makefile中最常见的元素
* 使用($.VARIABLES)能够获取所有的特殊变量