foreach 函数 makefile
时间: 2023-11-02 08:55:29 浏览: 55
foreach 函数是在 Makefile 中用来完成循环操作的函数。它的作用类似于 Unix 标准 Shell 中的 for 语句或者 C-Shell 中的 foreach 语句。该函数的语法为:$(foreach <var>, <list>, <text>)。其中,<var> 是一个临时的局部变量,在 foreach 函数执行完后,<var> 的变量将不再起作用,其作用域只在 foreach 函数内部。
相关问题
makefile foreach函数
在makefile中,foreach函数用于迭代一个列表中的每个元素,并对每个元素执行相同的操作。
语法:
$(foreach <var>,<list>,<text>)
其中:
- <var>:要定义的变量名称。
- <list>:要迭代的列表,可以是一个空格分隔的字符串列表,也可以是一个变量名。
- <text>:要执行的操作,可以包含变量引用和函数调用。
示例:
假设有一个变量SRC_DIRS,它包含若干目录名,可以这样定义:
SRC_DIRS := src1 src2 src3
我们想要把这些目录名逐个打印出来,可以使用foreach函数:
$(foreach dir,$(SRC_DIRS),echo $(dir);)
这里,<var>是dir,<list>是$(SRC_DIRS),<text>是echo $(dir);。
执行make命令后,输出如下:
echo src1;
src1
echo src2;
src2
echo src3;
src3
这表明foreach函数成功迭代了SRC_DIRS中的每个目录名,并对每个目录名执行了echo命令。
makefile foreach
在 Makefile 中,`foreach` 函数用于迭代一个由空格分隔的列表,并将每个元素应用到指定的操作中。该函数的语法如下:
```
$(foreach var,list,text)
```
其中,`var` 是一个临时变量名,`list` 是要迭代的列表,`text` 是对每个列表元素进行操作的文本。
下面是一个示例,展示如何使用 `foreach` 函数来打印列表中的每个元素:
```makefile
fruits := apple banana orange
all:
@$(foreach fruit,$(fruits),echo $(fruit);)
```
在上述示例中,`fruits` 列表包含三个水果。在 `all` 目标中,我们使用 `foreach` 函数迭代 `fruits` 列表,并将每个元素赋给 `fruit` 变量。然后,我们使用 `echo` 命令打印每个水果的名称。
运行 `make` 命令时,将会输出:
```
apple
banana
orange
```
这说明 `foreach` 函数成功地迭代了列表中的每个元素,并将其打印出来。