Makefile += :=
时间: 2023-09-30 12:04:15 浏览: 83
在Makefile中,`+=`是一个追加操作符,它用于将值添加到变量的末尾。例如,`Makefile += foo`会将字符串"foo"添加到Makefile中的变量。
而`:=`是一个赋值操作符,它用于给变量赋值。它的特点是,右侧的表达式会被立即展开并赋值给变量。这与其他赋值操作符(如`=`,`?=`,`:=`)不同,它们在使用时会在需要时才展开。
需要注意的是,在Makefile中使用这些操作符时,最好了解它们的含义,并根据具体情况使用正确的操作符来达到预期的效果。
相关问题
makefile +=
在Makefile中,"+="符号用于将值追加到变量的末尾。它的作用是将右侧的值添加到左侧变量的当前值的末尾,而不是覆盖它。例如,如果有一个变量var的当前值是"abc",执行var += "def"后,var的值将变为"abcdef"。\[1\]
#### 引用[.reference_title]
- *1* [Makefile中:=, =, ?=和+=的含义](https://blog.csdn.net/sinat_34241861/article/details/110352961)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item]
- *2* *3* [Makefile常用到的四种赋值方式(= := += ?=)说明](https://blog.csdn.net/more_thinking/article/details/119521669)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
在makefile中+=和:=的区别
在Makefile中,`+=` 和 `:=` 是赋值操作符,它们有以下区别:
1. `+=` (append assignment):
这个操作符用于追加目标变量的值。当你使用 `target += value` 时,会把新值追加到已有的目标值上,而不是覆盖原有的内容。如果变量原本不存在,它会被创建。比如:
```makefile
foo := bar
foo += baz # 现在 foo 的值是 "barbaz"
```
2. `:=` (set if not exists assignment):
这个操作符用于设置变量值,如果该变量已经存在并且非空,则不做任何事情;如果不存在或者为空,才赋予新的值。这通常用于确保变量只被设置一次,避免多次赋值导致的混乱。例如:
```makefile
foo := bar # 假设foo已经存在且非空,不做任何事
foo := baz # 因为foo已经有了值,所以不做任何改变
```
如果变量尚未设置,`:=` 将设置其值:
```makefile
foobar ?= foobar_value # 如果 foobar 变量未定义,则赋值为 foobar_value
```
总结来说,`+=` 主要用于增加已有变量的内容,而 `:=` 则主要用于初始化变量,确保变量只被设置一次。
阅读全文