C&C++   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了makefile – 在子目录中使失败使得不停止构建大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个设置,其中make通过一堆子目录并在这些目录中进行.我希望它立即停止构建失败.下面的代码片段说明了这一点.有人能指出我应该如何设置makefile的正确方向,或者有关从顶层到子目录构建的文档?
SUBDIRS = \
test1 \
test2 

all clean check :
    @for dir in $(SUBDIRS); do \
        if [ -d $$dir ]; then (cd $$dir; $(MAKE) $@) fi \
    done

解决方法

我是(明显的)少数民族,不同意“Recursive Make Considered Harmful”.我已经为大型,混乱的代码库编写了递归Make系统,并且它们工作得非常好.

这是怎么做的:

all: $(SUBDIRS)

$(SUBDIRS): force
    @ $(MAKE) -s -C $@

.PHONY: force
force :;

(我添加了-s以使事情变得更安静.)

编辑:
将目标传递给子制作(我之前应该这样做):

.PHONY: all check clean
all check clean: $(SUBDIRS)

all: TARGET=all
check: TARGET=check
clean: TARGET=clean
# No,you can't do TARGET=$@,or at least I don't kNow how to.

# recursive call to make
$(SUBDIRS): force
    @ $(MAKE) -s -C $@ $(TARGET)

.PHONY: force
    force :;

大佬总结

以上是大佬教程为你收集整理的makefile – 在子目录中使失败使得不停止构建全部内容,希望文章能够帮你解决makefile – 在子目录中使失败使得不停止构建所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。