我有一个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
make just state该文件是 up to date
,即使它还不存在 .
有任何想法吗?或者关于如何解决类似问题的任何其他想法?
1 回答
在最后一个先决条件语句之后(在上面的列表中的
file_K.pdf : file11.ext
之后),是否在该行上有一个迷路TAB字符?你应该尝试运行
make -d
,看看它没有 Build 的目标有什么说法 .