您的位置:首页 > 运维架构 > Linux

linux Makefile configure里面 += := -= 这些符号的意思?

2013-06-05 16:04 393 查看




linux Makefile configure里面 += := -= 这些符号的意思?

2012-01-29 09:00double_crane | 分类:Linux | 浏览406次
:= 把冒号去了 make时候也可以啊
makeconfig  生成的config里面 += -= := 之类都是什么意思啊
跟=有什么不一样么






提问者采纳

2012-01-29 11:20

:=  和 = 用在赋值时,:= 的赋值是马上生效, 而 = 则是等到变量被引用时才递归生效。用两个简单的makefile举例说明最简单:

makefile1:
bar=456
foo=${bar}
bar=${xxx}
xxx=123

all:
   echo ${foo}

echo出的结果是 123, foo的值在 echo 的时候,先被扩展成 ${bar}, 再递归的被扩展成 ${xxx},最终是123

makefile2:
bar=456
foo:=${bar}
bar=${xxx}
xxx=123

all:
   echo ${foo}
此时由于 用了 := ,在赋值时候 foo 的值就直接被扩展成 bar 在那个时刻的值,即 456, 最后的echo的结果也就是 456 了。

+= 就很简单了,就是在一个变量的值的尾部增加内容,如:
foo = abc
foo += efg

则 foo 的值就是 abc efg

makefile没有 -= 这个操作符。


提问者评价
举的例子具体,看懂了
做了一下确实是的
谢谢
楼下的也谢谢了


评论(3)|4





kwydwuf |来自团队C@Linux |十二级采纳率68%

擅长:C/C++Linux

按默认排序|按时间排序


其他1条回答

2012-01-29 12:10kewang_n|四级

‘=’定义的叫递归展开式变量,用它给某个变量赋值,后面的表达式不会在定义时就展开,而是在make程序执行到他的相关操作的时候才展开——即用的时候才生效
‘:=’定义的叫直接展开式变量,赋值时将后面表达式的值马上展开传递给变量——即立即生效。
+=,-=这种是用来对变量进行追加定义的操作符,在原有的定义基础上加上或减去某个定义,比如去掉某个对象.o文件。




2012-01-29 09:00double_crane | 分类:Linux | 浏览406次
:= 把冒号去了 make时候也可以啊
makeconfig  生成的config里面 += -= := 之类都是什么意思啊
跟=有什么不一样么






提问者采纳

2012-01-29 11:20

:=  和 = 用在赋值时,:= 的赋值是马上生效, 而 = 则是等到变量被引用时才递归生效。用两个简单的makefile举例说明最简单:

makefile1:
bar=456
foo=${bar}
bar=${xxx}
xxx=123

all:
   echo ${foo}

echo出的结果是 123, foo的值在 echo 的时候,先被扩展成 ${bar}, 再递归的被扩展成 ${xxx},最终是123

makefile2:
bar=456
foo:=${bar}
bar=${xxx}
xxx=123

all:
   echo ${foo}
此时由于 用了 := ,在赋值时候 foo 的值就直接被扩展成 bar 在那个时刻的值,即 456, 最后的echo的结果也就是 456 了。

+= 就很简单了,就是在一个变量的值的尾部增加内容,如:
foo = abc
foo += efg

则 foo 的值就是 abc efg

makefile没有 -= 这个操作符。


提问者评价
举的例子具体,看懂了
做了一下确实是的
谢谢
楼下的也谢谢了


评论(3)|4





kwydwuf |来自团队C@Linux |十二级采纳率68%

擅长:C/C++Linux

按默认排序|按时间排序


其他1条回答

2012-01-29 12:10kewang_n|四级

‘=’定义的叫递归展开式变量,用它给某个变量赋值,后面的表达式不会在定义时就展开,而是在make程序执行到他的相关操作的时候才展开——即用的时候才生效
‘:=’定义的叫直接展开式变量,赋值时将后面表达式的值马上展开传递给变量——即立即生效。
+=,-=这种是用来对变量进行追加定义的操作符,在原有的定义基础上加上或减去某个定义,比如去掉某个对象.o文件。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: