大佬教程收集整理的这篇文章主要介绍了GNU Makefile等效于shell的“TRAP”命令,用于在退出时简要识别构建失败,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我也不想做一个“继续失败”的解决方案 – 如果它被破坏,它是坏的,需要修复.
情况是这样的,我有@L_247_0@makefile来并行构建几个目录 – 如果其中一个失败,当然整个构建失败,但直到所有运行都运行完成(或失败)为止.这意味着实际失败的原因被埋在任何距离make输出结束的地方.
这是我所得到的一个例子:
all: $(SUBDIRS) SUBDIRS = \ apple \ orange \ banana \ pineapple \ lemon \ watermelon \ grapefruit $(SUBDIRS): cd $@ && $(MAKE) $(MFLAGS) 2>&1 | sed -e "s/^/$(notdir $(@)): /g"
如果我运行’make -j 5’和’orange’发生故障 – 我想在最后看到一个这样的表
的制作过程
apple - passed orange - Failed banana - passed pineapple - passed lemon - passed
我认为有一个&& echo“passed”> .result ||回显“Failed”> .result,但仍然需要某种类型的TRAP或__onexit()清理命令才能在退出时打印出来.
那么你需要为每个调用的sHell设置一个陷阱(如果你使用一个管道,也要设置-o pipefail),如本文http://lists.gnu.org/archive/html/help-make/2009-02/msg00011.html所述
简而言之:
target1: trap 'kill $$(jobs -p)'; command && something || something-else target2: trap 'kill $$(jobs -p)'; set -o pipefail; command | sed '...'
以上是大佬教程为你收集整理的GNU Makefile等效于shell的“TRAP”命令,用于在退出时简要识别构建失败全部内容,希望文章能够帮你解决GNU Makefile等效于shell的“TRAP”命令,用于在退出时简要识别构建失败所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。