1.循环函数-foreach

函数-foreach

foreach 这个函数是用来做循环用的,Makefile中的 foreach 函数几乎是仿照于 Unix 标准 Shell(/bin/sh)中的 for 语句,或是 C-Shell(/bin/csh)中的 foreach 语句而构建的。

它的语法是:

$(foreach <var>,<list>,<text>)
这个函数的意思是,把参数<list>中的单词逐一取出放到参数<var>所指定的变量中,
然后再执行<text>所包含的表达式。每一次<text>会返回一个字符串,循环过程中,
<text>的所返回的每个字符串会以空格分隔,最后当整个循环结束时,
<text>所返回的每个字符串所组成的整个字符串(以空格分隔)将会是 foreach 函数的返回值。
所以,<var>最好是一个变量名,<list>可以是一个表达式,而<text>中一般会使用<var>
这个参数来依次枚举<list>中的单词。

例子:

#sample Makefile
name := a b c d
files := $(foreach n ,$(name),$(n).o)

all:
	@echo $(files)
上面的例子中,$(name)中的单词会被挨个取出,并存到变量“n”中,
“$(n).o”每次根据“$(n)”计算出一个值,这些值以空格分隔,最后作为 foreach 函数的返回,
所以,$(files)的值是“a.o b.o c.o d.o”。

注意,foreach 中的<var>参数是一个临时的局部变量,foreach 函数执行完后,
参数<var>的变量将不在作用,其作用域只在 foreach 函数当中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值