makefile-预定义变量

预定义变量的使用

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

自动变量使用示例:

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

注意:

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

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

预定义变量示例1:

image

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

小结

* makefile提供了预定义变量供开发者使用
* 预定义变量的使用能够使得makefile的开发更高效
* 自动变量是makefile中最常见的元素
* 使用($.VARIABLES)能够获取所有的特殊变量
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容