makefile - GNU Make 只执行 10 条规则
问题描述
我有一个生成文件,可以将一些文件转换为 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
以上是大体结构(可惜我无法展示实际文件)。
对于前 10 个文件,运行make convert
就像一个魅力,即它生成file_A.pdf
直到file_J.pdf
. 然而,最后一个file_K.pdf
,永远不会生成。如果我将它的规则移动到它生成的列表的顶部,但是现在列表中的最后一个不再生成。
如果我make file_K.pdf
只声明文件是up to date
,即使它还不存在。
有任何想法吗?或者关于如何解决类似问题的任何替代想法?
解决方案
最后一个先决条件语句之后的行上是否有杂散的 TAB 字符(在file_K.pdf : file11.ext
上面的列表中)?
您应该尝试运行make -d
并查看它对未构建的目标的说明。
推荐阅读
- arrays - python多索引数组日期时间格式(作为两个不同的日期时间)
- javascript - 切换菜单自动关闭ul
- jpa - 具有复合主的 JPA 实体也是同一个表的外键
- docker - 提供有关 API 使用情况的服务器端指标
- android - 如何从 FileProvider URI 获取文件?
- rabbitmq - STOMP 标头中暴露的 RabbitMQ 版本
- javascript - Safari iOS 自动填充“国家”不起作用
- javascript - 为什么我的 HTML 文件只能“看到” Dist 文件夹中的 JavaScript 文件?
- javascript - 如何在 html/js 中的图像后面运行 youtube 视频?
- ruby-on-rails - Rails API 5.1.4 活动存储 - 无法加载“Rails.config.active_storage.service”