Makefile变量

在Makefile中,变量是一个名字,它不仅可以代表一个文本字符串,而且可以用来代表文件名、编译选项、程序运行的选项参数、搜索源文件的目录,以及编译输出的目录。在Makefile的目标、依赖、命令中任意引用变量的地方,在执行make命令后,都会被变量定义的值所取代。

Makefile使用变量注意事项:

1.大小写敏感,推荐的方法是对于内部定义的一般变量(例如,目标文件列表objects)使用小写,而对于一些参数列表(例如,编译选项CFLAGS)采用大写。

2.自动化变量,例如:

$@: 所有的参数,每个都用双引号引起,以(“$1” “$2” ...)的形式保存所有输入的命令行参数。

$*: 所有的参数,用一个双引号引起整体,以(“$1 $2 ...”)的形式保存所有输入的命令行参数。

变量的引用方式

 $(var)或者${var}

变量的定义与赋值

Makefile文件在进行变量定义是通常可以采用两种方式,第一种是递归展开定义法,另一种是直接展开定义法。这里介绍使用较多的直接展开定义法。

直接展开定义法

var := variable

demo

var1 := hello
var2 := $(var1) world!
var1 := this is another var1
var3 := $(object)
object := direct var2 define!
all:
	@echo $(var1)
	@echo $(var2)
	@echo $(var3)
	@echo $(object)

make之后显示如下:
this is another var1
hello world!


direct var2 define!

解释:

1. makefile命令行@的作用,makefile会自动显示命令行,@表示不显示此命令行。

2.makefile命令行以Tab键开始,如果执行make命令后提升“*** 遗漏分隔符 。 停止。”这个错误,可能就是没有以Tab开始命令行。

替换引用定义

对于一个已经定义的变量,可以使用“替换引用”将其值中的后缀字符(串)使用指定的字符(串)替换。

格式为 $(var:a=b)或者${var:a=b}

例如:

foo := a.o b.o c.o

bar := $(foo:.o=.c)

变量bar的值就为“a.c b.c c.c”



 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值