在 Makefile 中,如何从列表的每个成员中创建一个带有附加名称的目标?

In Makefile, how can I make a target with appended name from each members of list?

我想创建一个 Makefile,这样如果我输入 make q_a 它就会运行 qemu aarch64/a/a.elf,如果我输入 make q_b 它就会运行 qemu aarch64/b/b.elf.
我怎样才能用 Makefile 做到这一点? (你可以假设我有一个有限的 a、b、c、.. 列表,但如果没有限制,我会更高兴)。

刚刚:

q_%: ; echo $*

了解 pattern rules and automatic variables

在你明确了你的问题之后,你可以使用这个:

q_% : ; qemu aarch64/$*/$*.elf

我试过这个,效果很好。
(实际命令更复杂,但我减少了它以匹配我的问题)

q_% :
    qemu aarch64/$(subst q_,,$@)/$(subst q_,,$@).elf