我有一个makefile,它将一些文件转换成PDF。现在,makefile如下所示:
PDFS = file_A.pdf file_B.pdf <snip> file_K.pdf
all : convert
file_%.pdf:
$(CONVERTER_COMMAND) $< -o $@
file_A.pdf : file1.ext
file_B.pdf : file2.ext
<snip>
file_K.pdf : file11.ext
convert : $(PDFS)
.PHONY : convert
以上是一般结构(很遗憾,我无法显示实际文件)。
运行make convert
就像前10个文件的超级按钮一样,也就是说,它会生成file_A.pdf
直到file_J.pdf
。但是,永远不会生成最后一个file_K.pdf
。如果我将规则移到列表的顶部,则会生成它,但是列表中现在的最后一个规则将不再生成。
如果我做make file_K.pdf
,则只需声明文件为up to date
,即使该文件尚不存在。
有什么想法吗?还是关于解决类似问题的其他替代思路?
答案 0 :(得分:2)
最后一个先决条件语句之后(在上面列表中的file_K.pdf : file11.ext
之后),行上是否有离群TAB字符?
您应该尝试运行make -d
,看看它对未构建的目标有什么要求。