循环遍历并打印makefile字符串数组
时间: 2023-07-28 19:36:46 浏览: 62
在Makefile中,可以使用foreach函数和info函数来循环遍历并打印字符串数组。例如:
```
SOURCES := file1.c file2.c file3.c
print_sources:
$(foreach src,$(SOURCES),$(info $(src)))
```
在这个例子中,我们定义了一个名为print_sources的目标,它使用foreach函数和info函数来循环遍历SOURCES变量中的每个文件名,并打印出来。如果你运行make print_sources命令,你将会看到类似下面的输出:
```
file1.c
file2.c
file3.c
```
你可以根据具体的需求修改这个例子来满足你的要求。
相关问题
循环遍历makefile字符串数组
在Makefile中,可以使用变量来存储字符串数组。如果想要循环遍历这个字符串数组,可以使用foreach函数和空格作为分隔符来实现。例如:
```
SOURCES := file1.c file2.c file3.c
OBJECTS := $(foreach src,$(SOURCES),$(src:.c=.o))
all: $(OBJECTS)
%.o: %.c
gcc -c $< -o $@
```
在这个例子中,SOURCES变量存储了三个文件名,OBJECTS变量使用foreach函数将每个文件名替换为其对应的对象文件名。然后,在all目标中,我们使用OBJECTS变量来构建所有的目标文件。在%.o规则中,我们使用$<和$@来分别代表源文件和目标文件。
你可以根据具体的需求修改这个例子来满足你的要求。
makefile字符串数组
在 Makefile 中,可以使用变量来表示字符串数组。下面是一个示例:
```
FILES = file1.c file2.c file3.c
```
上述代码中,`FILES` 表示一个字符串数组,包含了三个文件名。可以使用 `$()` 或 `${}` 语法来引用数组中的元素,例如:
```
$(FILES:file%.c=obj%.o)
```
上述代码中,使用了模式替换语法,将 `FILES` 数组中以 `file` 开头、以 `.c` 结尾的文件名替换成以 `obj` 开头、以 `.o` 结尾的文件名。这样就可以方便地对字符串数组进行处理。