我有一个makefile,负责将文件从文件夹a复制到文件夹b。
这里我有一个简单的makefile来描述我遇到的问题。例:
all: a.txt b.txt
%.txt: test/%.txt
cp -a $< $@
当我调用make命令时:
make
它复制2个txt文件。
之后,我删除测试文件夹中的a.t txt并再次运行make
rm test/a.txt
make
我想make会检测到不可用的先决条件,但它输出:
make: Nothing to be done for `all'.
在这种情况下我怎么可能有错误输出?
谢谢! !
您正在使用一个模式规则,如果先决条件不可用,Make会忽略它。试试这个:
TEXTS := a.txt b.txt
all: $(TEXTS)
$(TEXTS): % : test/%
cp -a $< $@