我试图完成的工作的总体思路有望通过这个小脚本来概括。
DIRS = dir1 dir2 dir3 dir4 ...
OBJS =
all: GENERATE_OBJECT_FILES
GENERATE_OBJECT_FILES:
for curr_dir in $(DIRS); \
do \
$(join $(OBJS), `ls $${curr_dir}/*.o`); \
done
echo $(OBJS);
如何使用 Makefile 中的脚本完成此操作?
最佳答案
我会在配方之外使用 wildcard
function,如下所示:
DIRS := dir1 dir2 dir3 dir4 ...
OBJS := $(foreach dir,$(DIRS),$(wildcard $(dir)/*.o))
all : $(OBJS)
@echo $^
关于makefile - GNU Makefile 中的 For 循环——将所有目标文件收集到多个目录中的一个变量中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9574080/