makefile中赋值的左边有没有冒号和有冒号,有什么区别
来源:互联网 发布:詹姆斯生涯数据最新 编辑:程序博客网 时间:2024/05/16 01:56
:= 把冒号去了 make时候也可以啊makeconfig 生成的config里面 += -= := 之类都是什么意思啊跟=有什么不一样么
2012-01-29 11:20提问者采纳
:= 和 = 用在赋值时,:= 的赋值是马上生效, 而 = 则是等到变量被引用时才递归生效。用两个简单的makefile举例说明最简单:makefile1:bar=456foo=${bar}bar=${xxx}xxx=123all: echo ${foo}echo出的结果是 123, foo的值在 echo 的时候,先被扩展成 ${bar}, 再递归的被扩展成 ${xxx},最终是123makefile2:bar=456foo:=${bar}bar=${xxx}xxx=123all: echo ${foo}此时由于 用了 := ,在赋值时候 foo 的值就直接被扩展成 bar 在那个时刻的值,即 456, 最后的echo的结果也就是 456 了。+= 就很简单了,就是在一个变量的值的尾部增加内容,如:foo = abcfoo += efg则 foo 的值就是 abc efgmakefile没有 -= 这个操作符。
- 提问者评价
举的例子具体,看懂了做了一下确实是的谢谢楼下的也谢谢了
评论(4) 21 0
12-01-29 12:10
kewang_n
四级‘=’定义的叫递归展开式变量,用它给某个变量赋值,后面的表达式不会在定义时就展开,而是在make程序执行到他的相关操作的时候才展开——即用的时候才生效
‘:=’定义的叫直接展开式变量,赋值时将后面表达式的值马上展开传递给变量——即立即生效。
+=,-=这种是用来对变量进行追加定义的操作符,在原有的定义基础上加上或减去某个定义,比如去掉某个对象.o文件。
‘:=’定义的叫直接展开式变量,赋值时将后面表达式的值马上展开传递给变量——即立即生效。
+=,-=这种是用来对变量进行追加定义的操作符,在原有的定义基础上加上或减去某个定义,比如去掉某个对象.o文件。
http://zhidao.baidu.com/question/371399889.html
0 0
- makefile中赋值的左边有没有冒号和有冒号,有什么区别
- CSS中一个冒号和两个冒号有什么区别
- CSS中一个冒号和两个冒号有什么区别
- php中"::"双冒号有什么作用
- php中"::"双冒号有什么作用
- php中"::"双冒号有什么作用
- js代码中的 函数中的“:”冒号有什么作用
- c++中冒号(:)和双冒号(::)的区别
- c++中冒号(:)和双冒号(::)的区别
- c++中冒号(:)和双冒号(::)的区别
- C++ 中一个冒号和两个冒号的区别
- Makefile中=和:=有什么区别
- 一个冒号和两个冒号的区别
- lua中 点(.)和冒号(:)的区别
- JS中冒号的作用(与赋值符号的区别)
- 对makefile中:单冒号普通规则和::双冒号规则的理解 -转
- C结构体中赋值使用的冒号和点号
- C结构体中赋值使用的冒号和点号
- atan2反正切快速近似算法
- 最近正在参与的Swift2.0翻译工作(Access Control章节)
- 【Unity开发实战】官方实例SURVIVAL SHOOTER开发心得
- SIFT特征提取分析
- WR威廉指标
- makefile中赋值的左边有没有冒号和有冒号,有什么区别
- java foreach循环为什么不能赋值
- 回调函数透彻理解Java
- 垃圾回收器概述
- RabbitMQ 实践
- ubuntu安装rpm的方法
- 游戏中小地图的实现
- CentOS 7.0 安装中文输入法
- C#文件执行类的VB.NET版本