码迷,mamicode.com
首页 > 其他好文 > 详细

递归扩展变量和简单扩展变量

时间:2017-08-31 18:05:38      阅读:155      评论:0      收藏:0      [点我收藏+]

标签:输出   efi   bsp   停止   简单   例子   没有   file   最大的   

1 递归扩展变量和简单扩展变量的区别

最大的区别在于,递归扩展变量等号右边的表达式里面的变量要等到该递归变量被用的时候再去扩展,而简单变量的话,在读取makefile的时候就已经扩展了。

并且简单扩展变量有前后关系,简单扩展变量只能用到在其前面定义的变量,而不能用到在其后面定义的变量。而递归扩展变量,要用的时候,需要扩展的时候,可以一直扩展到不能扩展为止,即递归扩展。

2 例子

foo := $(bar)

bar = aaa

all:;echo $(foo)

输出为空,因为在给foo赋值扩展等号右边的时候,还没有bar,因此为空。

foo = $(bar)

bar=aaa

all:;echo $(foo)

输出aaa,读取makefile时,foo等号右边还没有被扩展,要用foo的时候再去递归扩展,到了bar,它的右边已经没有需要继续扩展的变量了,因此停止扩展。

 

递归扩展变量和简单扩展变量

标签:输出   efi   bsp   停止   简单   例子   没有   file   最大的   

原文地址:http://www.cnblogs.com/hustdc/p/7459421.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!