【发布时间】:2021-12-30 16:07:57
【问题描述】:
假设我定义:
# makefile
.FORCE:
foo-bar: .FORCE
@echo "$@"
foo-biz: .FORCE
@echo "$@"
.PHONY: foo-bar foo-biz
我在命令行上写:
$: make foo-bar foo-biz
那么有没有办法让我以某种方式写:
$: make foo-*
例如?
【问题讨论】:
-
您必须在您的 makefile 中添加一个虚假的无操作规则
foo: foo-bar foo-baz。换句话说,不是真的。 -
你可以写一个makefile来做你想做的事,即从目标
foo-*推断你想要构建所有以foo-开头的目标,但是这将是一个非常可怕的野兽。所以如果你真的需要它,或者你想挑战自己,当然;如果您正在寻找一种快速的解决方案来节省一些工作量,那就不用了。 -
@Beta 如果我们将解决方案限制为一个原生支持的
%通配符,则解决方案并不可怕,请参阅下面的答案