makefile--预定义变量的使用

预定义变量的使用

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

自动变量使用示例:

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)能够获取所有的特殊变量

猜你喜欢

转载自blog.csdn.net/qq_28944301/article/details/79750546