加载中…
正文 字体大小:

makefile中=、:=和+=的区别

(2015-09-29 08:21:17)
标签:

文化

分类: Linux

经常有人分不清= 、:=和+=的区别  这里我总结下做下详细的分析:

首先你得清楚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值。也就是前面的是有效的而引用变量之后的就是无效的。

0

阅读 评论 收藏 转载 喜欢 打印举报
已投稿到:
  • 评论加载中,请稍候...
发评论

       

    发评论

    以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

      

    新浪BLOG意见反馈留言板 不良信息反馈 电话:4006900000 提示音后按1键(按当地市话标准计费) 欢迎批评指正

    新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

    新浪公司 版权所有