开发者社区> 问答> 正文

makefile中以for循环实现多目标,(两子目录makefile)

子目录./test1/test9 ./test1/test6含有两个正确的makefile

1   SUBDIRS:=./test1/test9 ./test1/test6
 2  subdirs:
 3  for dir in $(SUBDIRS);do\
 4          $(MAKE) -C $$dir;\
 5          done
make之后:
    for dir in ./test1/test9 ./test1/test6;do
/bin/sh: 1: Syntax error: end of file unexpected
makea:3: recipe for target 'subdirs' failed

展开
收起
云栖技术 2016-06-06 09:41:58 4885 0
1 条回答
写回答
取消 提交回答
  • 社区爱好者,专为云栖社区服务!

    SUBDIRS:=./test1/test9 ./test1/test6
    当在for循环中取SUBDIRS变量时,会把“./test1/test9 ./test1/test6”当成一个完整的变量,
    `make -C

    $$ dir -> make -C ./test1/test9 ./test1/test6` 所以在for循环使用的时候需要将SUBDIRS变量拆分一下:

    for dir in echo $(SUBDIRS) | cut -d'<空格>' -f 1-; \
    do \
    make -C 
    $$
    dir; \
    done \
    2019-07-17 19:27:38
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载