我有一个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,即使它还不存在。
有什么想法吗?或者,对于如何解决类似的问题,有其他的想法吗?
发布于 2018-06-20 15:37:47
在最后一个先决条件语句之后(在上面列表中的file_K.pdf : file11.ext之后)行上是否有一个杂乱的TAB字符?
您应该尝试运行make -d,看看它对它没有构建的目标有什么看法。
https://stackoverflow.com/questions/50951932
复制相似问题