我编写了一个简单的makefile,它将所有.txt文件从/ src复制到/ dest目录。但它不起作用。
我猜问题是'%',但我找不到它。你能救我吗?
Makefile:
all:dest/%.txt
dest/%.txt: src/%.txt
@[ -d dest ] || mkdir dest
cp $< $@
错误信息:
make:***没有规则使目标dest/%.txt', needed by
全部'。停止。
===============================
感谢所有答案!现在我明白了makefile的作用。如果我将第一行修改为“all:dest / a.txt”,同时在src /目录中有一个.txt。它只会将src / a.txt复制到dest / a.txt,而不是复制src /中的所有文件。
答案 0 :(得分:0)
你不需要通配符。
all:
cp src/*.txt dest/
答案 1 :(得分:0)
您可以将%
表示法与通用配方一起使用,例如将C文件编译为目标文件的规则。
您无法在像您尝试的目标中使用它。
考虑.txt
目录中没有dest
个文件的情况。没有什么可以告诉make
它应该将哪些文件复制到目录中。
我倾向于使用老式make
,而我不会在makefile
中使用通配符。因此,我在目录中列出我想要的文件并编写条件复制规则。