首页 > 其他 > 详细

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

时间:2017-08-31 17:38:39      阅读:295      评论:0      收藏:0      [点我收藏+]

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

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

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

2 例子

foo := $(bar)

bar = aaa

all:;echo $(foo)

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

foo = $(bar)

bar=aaa

all:;echo $(foo)

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

 

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

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!