我尝试了以下两种方法,但总是得到(没有得到)"In nextFrag"印刷):
在美国广播公司(ABC)开始
START :
test.ABC
echo "In Start"
%.ABC : %.nextFrag
echo "In ABC"
%.nextFrag:
echo "In nextFrag"
# 2:
START :
test.ABC
echo "In Start"
%.ABC : $*.nextFrag
echo "in ABC"
%.nextFrag:
echo "In nextFrag"
(注意:这主要针对GNUmake
)
%
不是通配符(至少在*
,?
和[...]
是通配符的意义上不是)。它用于定义所谓的模式规则,该规则仅用于定义先决条件。在模式规则中,%
匹配任意字符串,因此%.c
表示"所有*.c"文件都是先决条件。
对于您正在做的事情,当模式看起来不匹配任何文件时,您只需使用伪目标,这些目标名称不对应于任何文件。
.PHONY: START test.ABC nextFrag
START: test.ABC
echo "In Start"
test.ABC: nextFrag
echo "In ABC
nextFrag:
echo "In nextFrag"