经常有人分不清= 、:=和+=的区别 这里我总结下做下详细的分析:
首先你得清楚makefile的运行环境,因为我是linux系统,那么我得运行环境是shell
在Linux的shell里,shell只认识字符串,所以你就不要说整形什么的了。说值也不贴切。
先看+=是什么意思?
因为shell只认识字符串,所以这里应该不难联想到+=就是字符串连接的意思。相当于c语言的 strcat
举个例子:
x本来是 U;
x += SB;
那么运行结果就是 x为USB;
接着理解:=和=
这个是很常用的,比=用得多
看下面的例子:
x = sb;
y = u$(x)
x = all
运行结果x 是all y是uall
将=改成:=
x := sb;
y := u$(x)
x := all
运行结果x是all y是usb
怎么样?有感觉了吧。这里=的话算$(x)的时候会一直搜索到文件最后,最后再赋值。
而:=则不会搜索后面的x值。也就是前面的是有效的而引用变量之后的就是无效的。
http://blog.sina.com.cn/s/blog_7880f9830102w80f.html
http://www.cnblogs.com/wanqieddy/archive/2011/09/21/2184257.html
转载于:https://www.cnblogs.com/tianzijiaozi/p/7747743.html
相关知识
升级 gcc g++ 版本 支持
uboot顶层makefile部分解析
宠物和动物有什么区别和相同点?
猫和宠物语言和声音翻译器
怎么和仓鼠沟通(如何和仓鼠培养感情)
宠物狗腿部和脚美容方法和要点
驴子和宠物狗。马和鹿。鸟兽和蝙蝠的故事。农夫的宝藏
利用社交媒体提高工作效率和社交能力:实用技巧和建议
食物和情绪:饮食和营养如何影响心理健康?
荷兰鼠和天竺鼠,天竺鼠和荷兰猪有什么区别
网址: makefile :=和+= https://m.mcbbbk.com/newsview205840.html
上一篇: 气垫一盒多用=粉底液+遮瑕膏+定 |
下一篇: 想教我的狗狗一些技能,怎么学习宠 |