gpt4 book ai didi

makefile - 让配方执行两次

转载 作者:行者123 更新时间:2023-12-02 21:58:52 24 4
gpt4 key购买 nike

有没有办法多次执行一个菜谱?在下面的 SSCCE 中,该配方似乎只执行一次:

$ cat Makefile 
.PHONY: a b
a: b b
b:
echo "beta"
$ make
echo "beta"
beta

最佳答案

一旦您阅读并理解了评论;-),我可以想到两种方法来运行菜谱两次:

@OliCharlesworth 提到了第一个 - 在你的食谱中使用循环:

.PHONY: a b
a: b b
b:
for i in 1 2; do \
echo "beta" ;\
done

请注意,在配方中嵌入多行 shell 表达式时需要非常小心。除非您使用反斜杠终止行,否则 make 会将每一行视为一个单独的 shell 调用,这对于循环不起作用。

另一种方法是复制 b 目标,以便两个副本具有相同的配方:

.PHONY: a b1 b2
a: b1 b2
b1 b2:
echo "beta"

这定义了具有相同配方的b1b2目标。然后,a 依赖于 b1b2,因此配方被调用两次。请注意,无法保证 b1b2 的调用顺序 - 如果您的 -j 因子大于 1,则它们可能会同时调用.

关于makefile - 让配方执行两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25654681/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com