六、常用操作符
Makefile中常常会用到许多操作符 =、:= 、+= 、?=,接下来将对这四种常用的操作符进行使用方面 的叙述。
1)操作符“=”
该操作符类似于等于,但是赋予给其左边变量的值不是马上就确定了的,使用“=”进行的赋值操作是受赋值给这个变量的变量的影响,在整个Makefile展开后,最后所能够确定该变量的定义。
实例如下:
x = hello
y = $(x)_world
x = demo
在上述的实例中,x变量首先被赋值了“hello”,但是最后的y的值是“demo_world”而不是“hello_world”,因为在最后x被赋值了“demo”,整个makefile展开之后,x的最终的值是“demo”,所以y的结果为“demo_world”。
2)操作符“:=”
该操作符的意义在理解上就比“=”要清晰很多了,这是一个立即赋值的操作符,在哪使用就是使用哪的变量进行赋值,不需要整个Makefile的展开来确定。
实例如下:
x := hello
y := $(x)_world
x := demo
在上述的实例中,x变量被赋值了“hello”,紧接着赋值给了y,所以此操作后y的最终的值是“hello_world”。
3)操作符“+=”
该操作符字如其名,是一个用来进行赋值追加操作的操作符,并自动添加空格。
实例如下:
x = hello
x += world
经过上述操作之后,对x变量进行展开的结果是$(x)的值是“hello world”,注意使用该操作符进行追加赋值操作时时候在值与值之间自动添加空格的。
4)操作符“?=”
该操作符使用与对变量是否已经被赋值进行判断,未被赋值则该变量进行赋值操作,反之不进行二次赋值。
实例如下:
x :=hello_world
x ?= demo
由于在进行“?=”操作前,x变量已经被赋值了,所以不再进行二次赋值。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/117012.html