3

我使用'for'循环来创建子目录,但是当子目录中的make出现一些错误时,它会继续创建下一个目录,当子目录中的'make'出现错误时我可以停止吗?

all :
    for i in $(SUBDIRS); do make -C $$i dll; done;
                ||
make[1]: *** [bd_snmp.o] error 1
make[1]: Leaving directory `/home/ping/work/svnsocserv/src/bd_snmp'
make[1]: Entering directory `/home/ping/work/svnsocserv/src/bd_snmp_proxy'
4

1 回答 1

8

当然,只需在你的 shell 脚本中添加一些东西来检查:

all:
        for i in $(SUBDIRS); do $(MAKE) -C $$i dll || exit 1; done

(注意总是使用$(MAKE)递归调用子制作,从不make)。

虽然这不是一个好方法,因为虽然它确实在子制作失败时立即退出,但它不服从 make-k选项继续前进。

于 2013-09-22T06:31:43.030 回答