cominglately 2015-08-26 01:45 采纳率: 72.1%
浏览 9780
已采纳

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
make: *** [subdirs] Error 2
  • 写回答

1条回答 默认 最新

  • qq1223386926 2015-08-26 13:33
    关注

    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 \

    图片说明

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥100 求数学坐标画圆以及直线的算法
  • ¥35 平滑拟合曲线该如何生成
  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable
  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 自己瞎改改,结果现在又运行不了了
  • ¥15 链式存储应该如何解决