Makefile 中:= ?= += =的区别
来源:互联网 发布:电脑桌面优化软件 编辑:程序博客网 时间:2024/06/03 23:46
经常有人分不清= 、:=和+=的区别
首先你得清楚makefile的运行环境,因为我是linux系统,那么我得运行环境是shell
在Linux的shell里,shell只认识字符串,所以你就不要说整形什么的了。说值也不贴切。
1。 先看+=是什么意思?
因为shell只认识字符串,所以这里应该不难联想到+=就是字符串连接的意思。相当于c语言的
举个例子:
x本来是
那么运行结果就是
2. 再看?=是什么意思?
?=是条件赋值
比如:
foo ?= $(bar)
只有当foo变量还没有被定义的时候,才会将bar的值赋给foo。 注意,如果foo已经被定义过,但是是空值了话,?=不会给他赋值。比方说你的makefile是
foo = hello
foo ?= new
则最终foo的值是hello
如果你的makefile是
foo =
foo ?= new
foo的值是空
3。 接着理解:=和=
看下面的例子:
运行结果x 是all
将=改成:=
怎么样?有感觉了吧。这里=的话算$(x)的时候会一直搜索到文件最后,最后再赋值。
而:=则不会搜索后面的x值。也就是前面的是有效的而引用变量之后的就是无效的。
- [makefile]makefile中 '=', ':=', '?=', '+='的区别
- Makefile 中 = := ?= 的区别
- Makefile 中 = := ?= 的区别
- Makefile中”=“”?=“”+=“的区别
- Makefile中=与:=的区别
- Makefile中=与:=的区别
- makefile中“=”和“:=”的区别
- Makefile中=与:=的区别
- makefile中“=”和“:=”的区别
- makefile中“=”与“:=”的区别
- Makefile 中:= 和=的区别
- Makefile中=与:=的区别
- Makefile中=与:=的区别
- makefile中“=”和“:=”的区别
- Makefile中=与:=的区别
- makefile 中":"和":="赋值的区别
- Makefile中各种=的区别
- Makefile 中:= ?= += =的区别
- OWASP Top 10 2017
- hdu 6045.Is Derek lying?
- java和spring访问资源的方式
- iPhone X适配之启动图适配教程
- Oracle-1-概念篇
- Makefile 中:= ?= += =的区别
- Java经典算法四十例编程详解+程序实例
- Linux基础知识
- 我们都知道继电器具有负载的能力,那么继电器的负载主要有哪几种类型呢?
- WinAPI: DrawText
- Cmake工具编译Android程序
- hibernate单向一对多和双向一对多
- SQLException----异常一只
- 幸运的编号