Makefile:'make $*clean'是什么意思?

pad*_*oot 3 makefile

我知道是什么make clean呢.

但是做了make $* clean什么?

我无法在任何地方找到明确的解释.

Mad*_*ist 7

正如罗斯所说,我们无法帮助,因为你没有提供足够的背景.您需要至少提供make $* clean显示的规则.

但是,我猜它看起来像这样:

%.xyz:
        make $* clean
Run Code Online (Sandbox Code Playgroud)

这里$*是一个自动变量,它将扩展到目标的主干(%与模式匹配的文本).因此,如果您调用make foobar.xyz,此规则将调用make foobar clean:它将运行子make,构建foobar目标,然后构建clean目标.

虽然我能想到这样做的原因,但我没有看到与上述相似的东西.更常见的是如果你错误输入命令并且它真的说make -C $* clean,给出这样的规则:

%.xyz:
        make -C $* clean
Run Code Online (Sandbox Code Playgroud)

(请注意,你应该永远使用静态字符串make调用子化妆的时候,你应该总是使用$(MAKE)${MAKE}).在此示例中,运行make foobar.xyz将运行make -C foobar clean,这意味着更改目录foobar并在clean那里运行目标.