makefile中ids=`expr $${ids},$${id}`;的含义
时间: 2024-01-01 15:05:17 浏览: 30
在Makefile中,`$$`表示转义,因此`$${ids}`表示将`ids`变量的值插入到命令中。`expr`是一个用于数学运算的Unix命令,`expr $${ids},$${id}`的含义是将`id`变量的值追加到`ids`变量的末尾,用逗号分隔。这个命令的作用是将多个ID值存储在一个变量中,以便在后续的命令中使用。例如,假设`ids`的初始值为空,`id`的值为`123`,则执行`ids=`expr $${ids},$${id}`;`后,`ids`的值将为`123`。如果再次执行`id`的值为`456`,则`ids`的值将变为`123,456`。
相关问题
makefile中:=$=
在makefile中,:=$=是一个无效的语法。在makefile中,:=是一个赋值运算符,用于将变量赋值为一个表达式的结果,例如:
```
foo := bar
```
这将把变量foo赋值为字符串"bar"。
另外,$是makefile中的变量引用符号,用于引用已定义的变量的值,例如:
```
$(foo)
```
这将引用变量foo的值。
makefile中 $=
在makefile中,$=是一个变量赋值符号,它表示将右边的值赋给左边的变量。与其他赋值符号不同的是,$=是递归展开的,也就是说,它允许在变量定义中使用其他变量。例如:
```
FOO = bar
BAZ = $(FOO)baz
```
这里,定义了一个名为FOO的变量,并将其赋值为bar。接着,定义了一个名为BAZ的变量,并将其赋值为$(FOO)baz。由于$=是递归展开的,所以$(FOO)会被展开为bar,因此BAZ的最终值为barbaz。
需要注意的是,$=的递归展开可能会导致一些问题,特别是在定义复杂的变量时。为了避免这种情况,可以使用其他赋值符号,如:=或?=,它们不会递归展开。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)