第五部分 :预定义变量的使用
5.1 在makefile中存在一些预定义的变量
- 自动变量
- $@,$^,$<
- 特殊变量
- $(MAKE),$(MAKECMDGOALS),$(MAKEFILE_LIST)
- $(MAKE_VERSION),$(CURDIR),$(.VARIABLES)
5.2 自动变量的意义
- $@
- 当前规则中触发命令被执行的目标
- $^
- 当前规则中的所有依赖
- $<
- 当前规则中的第一个依赖
5.3 自动变量的使用示例

注意:
1、“$”对于makefile有特殊含义
- 输出时需要加上一个“$”进行转义
2、“$@”对于 Bash Shell有特殊含义
- 输出时需要加上“\”进行转义
5.4 编程实验:自动变量的使用
.PHONY : all first second third
all : first second third
@echo "\$$@ => $@"
@echo "$$^ => $^"
@echo "$$< => $<"
firtst:
second:
third:

5.5 一些特殊变量的含义
$(MAKE)
- 当前make解释器的文件名
$(MAKECMDGOALS )
- 命令行中指定的目标名(make的命令行参数)
$(MAKEFILE_LIST)
- make所需要处理的makefile文件列表
- 当前makefile 的文件名总是位于列表的最后
- 文件名之间以空格进行分隔
5.6 编程实验:预定义变量示例一
.PHONY : all out
all out :
@echo "$(MAKE)"
@echo "$(MAKECMDGOALS)"
@echo "$(MAKEFILE_LIST)"


5.7 一些特殊变量的含义
$(MAKE_VERSION)
- 当前make解释器的版本

本文详细介绍了makefile中预定义变量的使用,包括自动变量如$@, $^, $<的含义和用法,以及$(MAKE), $(MAKECMDGOALS), $(MAKEFILE_LIST)等特殊变量的含义。此外,还探讨了变量的高级主题,如变量值的替换、模式替换、命令行变量、override关键字和define关键字的使用,强调了预定义变量和自定义变量在提升makefile效率中的重要作用。"
121648892,11687219,Axure自适应设计实战:宽度与高度调整,"['前端开发', '原型设计', '响应式设计', '网页设计', 'UI设计']
最低0.47元/天 解锁文章
2114

被折叠的 条评论
为什么被折叠?



