伍-《预定义变量的使用》

伍- 预定义变量的使用

在makefile 中存在一些预定义的变量

  • 自动变量
    • $@, $^, $
  • 特殊变量
    • $(MAKE), (MAKECMDGOALS), (MAKECMDGOALS),(MAKECMDGOALS)(MAKEFILE_LIST)

自动变量的意义

  • $@
    当前规则中触发命令被执行的目标
  • $^
    当前规则中所有依赖
  • $ 当前规则中的第一个依赖

自动变量的使用示例

注意:

  1. ”对于makefile有特殊含义输出时需要加一个”” 对于 makefile 有特殊含义 输出时需要加一个 ” makefile” 进行转义
  2. “$@” 对于 Bash shell 有特殊含义
    输出是需要加上 “” 进行转义

一些特殊变量的含义

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

编程实验1

编程实验2

实验结论:
大型软件开发过程中,makefile 是分成好几个子文件来编写的,这些makefile 可以进行相互调用,这样进行相互调用

一些特殊变量的含义

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

编程实验3.1

实际开发中可以查看当前make 解释器中支持预定义变量

编程实验3.2

这里的结论就是实际开发过程中可以之间使用 来替代 这个命令,比如下面这个形式

小结

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

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年7月20日
下一篇 2020年7月20日

相关推荐