6. 变量的高级主题(上)
Posted Alone0710
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了6. 变量的高级主题(上)相关的知识,希望对你有一定的参考价值。
1. 变量值的替换
- 使用指定字符(串)替换变量值中的后缀字符(串)
- 语法格式:$(var:a=b) 或 $(var:a=b)
替换表达式中不能有任何的空格
make中支持使用${ }对变量进行取值
src := a.cc b.cc c.cc
obj := $(src:cc=o)
test :
(tab)@echo “obj => $(obj)”
2. 变量的模式替换
- 使用%保留变量值中的指定字符,替换其他字符
- 语法格式:$(var:a%b=x%y)或${var:a%b=x%y}
替换表达式中不能有任何的空格
make中支持使用${}对变量进行取值
src := a1b.c a2b.c a3b.c
obj := $(src:a%b.c=x%y)
test:
(tab)@echo “obj => $(obj)”
3. 规则中的模式替换
OBJS := func.o main.o
$(OBJS) : %.o : %.c
(tab)gcc -o $@ -c $^
等同于以下代码:
func.o : func.c
(tab)gcc -o $@ -c $^
main.o : main.c
(tab)gcc -o $@ -c $^
好处:大工程中可以显现出来,比较简洁,容易维护大工程
4. 命令行变量
变量的值以命令行为准,可以临时改变值。
5. override关键字
- 用于指示makefile中定义的变量不能被覆盖
- 变量的定义和赋值都需要使用override关键字
6. 小结
以上是关于6. 变量的高级主题(上)的主要内容,如果未能解决你的问题,请参考以下文章