Makefile 当我使用';%';在先决条件和目标的生成文件中,它显示';制造:**无目标。停下来;

Makefile 当我使用';%';在先决条件和目标的生成文件中,它显示';制造:**无目标。停下来;,makefile,gnu-make,Makefile,Gnu Make,我有一个pythonscript script.py,它输出两个图Fig_script_01.pdf和Fig_script_02.pdf。 我直觉上是这样做的 .PHONY : all all : Fig_script_01.pdf Fig_script_02.pdf Fig_script_01.pdf Fig_script_02.pdf : script.py python script.py 由于将有其他几个具有不同输出图的python脚本,因此我希望python脚本文件名是相关

我有一个pythonscript script.py,它输出两个图Fig_script_01.pdf和Fig_script_02.pdf。 我直觉上是这样做的

.PHONY : all
all : Fig_script_01.pdf Fig_script_02.pdf

Fig_script_01.pdf Fig_script_02.pdf : script.py
    python script.py
由于将有其他几个具有不同输出图的python脚本,因此我希望python脚本文件名是相关的模式。我想要这样的东西:

Fig_%$(.*).pdf : %.py
    python $<
Fig%$(.*).pdf:%.py
蟒蛇$<
其中,$(*)表示某种正则表达式(最好的方法是什么??) 然而,我的问题的第一部分是我得到了信息 '制造:**无目标。停下来。甚至当我使用不太复杂的testfiles test.py、test.pdf来执行测试时,也会发生这种情况

%.pdf : %.py
    python $<
%.pdf:%.py
蟒蛇$<
但在几乎所有教程中都会出现这样的表达式。我错过了什么?
有人能解决这个问题吗

您是否在所有makefile中都有
all:..
目标?例如,最后一个生成文件包含如何从XY.py创建XY.pdf的说明,但一些目标必须要求创建XY.pdf,这实际上解决了我的问题。我没有要问的功能,非常感谢!不客气。