在makefile中定义逗号字符串和空格字符串

2 篇文章 0 订阅
2 篇文章 0 订阅

空格和逗号是makefile中常见的分隔符,估计是写不出一个完全没有空格和逗号的makefile的,没有的话意义就不对了。但是如果要进行字符串处理,空格和逗号就不能直接出现了,即使直接写上make解析器也不会将其作为字符串使用。所以应该这样写,才能让空格和逗号变成字符串。具体是谁想出来的已经不可考了,这里就写原创,请真正的原创不要见怪。

comma:=,
empty:=
space:=$(empty) 
foo:= a,b,c
bar:= $(subst $(comma),$(space),$(foo)) 

all:
	@echo $(foo)
	@echo $(bar)
上面的代码将逗号替换成空格。注意comma,empty,space这三个变量。 comma的等号后面就是一个逗号;empty的等号后面没东西,直接回车;space的等号后面是$(empty)再加一个空格(如果你加多个空格那么space就代表多个空格)


输出结果(测试的makefile在/usr/local里):

root@debian:/usr/local# make
a,b,c
a b c


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值