Makefile中=,:=,?= 的含义

本文介绍了Makefile中三种赋值符号——'='、':='和'?='的含义。'='会在整个makefile展开后确定变量值,允许使用后续定义的值。':='确保变量值只使用前面已定义的变量,而'?='则只有在变量未定义时才赋值,相当于条件赋值。
摘要由CSDN通过智能技术生成

最近学习Makefile,复习一下以前学过的知识,参考<跟我一起学Makefile>中第七部分:使用变量

参考博客:https://www.cnblogs.com/oracleloyal/p/6092526.html

1.Makefile中=,:=,?=的含义

"="

make会将整个makefile展开后,再决定变量的值。也就是说,变量的值将会是整个makefile中最后被指定的值

在“=”左侧是变量,右侧是变量的值,右侧变量的值可以定义在文件的任何一处,也就是说,右侧中的变量不一定非要是已定义好的值,其也可以使用后面定义的值

":="

前面的变量不能使用后面的变量,只能使用前面已定义好了的变量

"?="

FOO ?= bar
其含义是,如果 FOO 没有被定义过,那么变量 FOO 的值就是“bar”,如果 FOO 先前被定义
过,那么这条语将什么也不做,其等价于:
ifeq ($(origin FOO), undefined)
FOO = bar
endif

2.小实验

root@ubuntu:/lianxi/lianxi_c++/duotai# make test
###test code start!
###foo = HUH?
root
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值