gpt4 book ai didi

makefile - 制定规则,使用不同的变量值多次调用另一个规则

转载 作者:行者123 更新时间:2023-12-02 16:59:38 25 4
gpt4 key购买 nike

我有一个规则something,它适用于变量VAR。我还有另一个规则 something-all,需要运行 something,并将 VAR 设置为 vars 中的每个值>.

vars = hello world

something:
echo $(VAR)

something-all:
$(foreach VAR,$(vars),something)

这不太管用,我明白了

noob@work:~/Desktop$ make something-all
something something
make: something: No such file or directory
make: *** [something-all] Error 1

它可能应该打印 hello\nworld

我曾经通过从 % 检索 VAR 来使用通配符规则来执行此操作,但感觉这是错误的方法。看起来像这样:

vars = hello world

all: $(foreach VAR,$(vars),something-$(VAR))

something-%:
echo $*

最佳答案

下面的内容应该可以解决您的问题

使用 foreach(在 Sparc-solaris 2.8 和 Windows 上的 GNU Make 3.80 上尝试过)

vars = hello world

something:
echo $(VAR)

something-all:
$(foreach i, $(vars), $(MAKE) something VAR=$i || exit 1;)

使用 shell for 循环(在 GNU Make 3.80 上尝试过,在 sparc-solaris 2.8 上尝试过 cc make)

vars = hello world

something:
echo $(VAR)

something-all:
for i in $(vars); do $(MAKE) something VAR=$$i || exit 1; done

关于makefile - 制定规则,使用不同的变量值多次调用另一个规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34779746/

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