makefile中 $=
时间: 2023-10-03 13:10:20 浏览: 101
在makefile中,$=是一个变量赋值符号,它表示将右边的值赋给左边的变量。与其他赋值符号不同的是,$=是递归展开的,也就是说,它允许在变量定义中使用其他变量。例如:
```
FOO = bar
BAZ = $(FOO)baz
```
这里,定义了一个名为FOO的变量,并将其赋值为bar。接着,定义了一个名为BAZ的变量,并将其赋值为$(FOO)baz。由于$=是递归展开的,所以$(FOO)会被展开为bar,因此BAZ的最终值为barbaz。
需要注意的是,$=的递归展开可能会导致一些问题,特别是在定义复杂的变量时。为了避免这种情况,可以使用其他赋值符号,如:=或?=,它们不会递归展开。
相关问题
makefile中$=
在 Makefile 中,$= 表示将所赋的值展开为一个被定义过的变量,在定义时可以使用一个或多个已经定义的变量和其它一些字符串拼接而成,从而实现复用。
举个例子,假设有如下定义:
```
NAME=foo
TAG=latest
IMAGE_NAME=$(NAME):$(TAG)
```
则在使用时可以这样引用:
```
docker build -t $(IMAGE_NAME) .
```
这样就可以将变量 NAME 和 TAG 的值拼接成 IMAGE_NAME 变量的值了。
makefile中:=$=
在makefile中,:=$=是一个无效的语法。在makefile中,:=是一个赋值运算符,用于将变量赋值为一个表达式的结果,例如:
```
foo := bar
```
这将把变量foo赋值为字符串"bar"。
另外,$是makefile中的变量引用符号,用于引用已定义的变量的值,例如:
```
$(foo)
```
这将引用变量foo的值。