【问题标题】:Makefile - generating thumbnails from picturesMakefile - 从图片生成缩略图
【发布时间】:2018-12-07 10:00:46
【问题描述】:

我正在尝试制作一个 Makefile。我有一个名为图片的文件夹和一个名为拇指的文件夹。图片中的图片有pic1.jpg、pic2.jpg、pic3.jpg等。我想从这些图片中制作缩略图并将它们放在拇指文件夹中。这是我尝试过的:

infiles = $(wildcard pictures/*.jpg) 
outfiles = $(subst pictures,thumbs, $(infiles))
all : $(outfiles)
       convert -thumbnail 100 pictures/*.jpg thumbs/*.jpg

谁知道我做错了什么?

【问题讨论】:

  • 怎么不工作了?目标目录是否存在?它是否已经包含部分或全部这些文件?

标签: unix makefile gnu


【解决方案1】:

您的 makefile 说“这里是如何创建 all;它可以在所有 outfiles 都是最新的时创建”,但您没有说明如何创建这些文件。

更惯用的方法是为每个单独的文件指定一个依赖项,然后 Make 可以从那里获取它。换句话说,假设all 依赖于outfiles,就像你所做的那样,但随后分别指定每个outfile 如何依赖于其各自的infile

infiles = $(wildcard pictures/*.jpg) 
outfiles = $(subst pictures,thumbs, $(infiles))

.PHONY: all
all : $(outfiles)

thumbs/%.jpg: pictures/%.jpg
    mkdir -p thumbs
    # Guesswork here; probably update the command
    convert -thumbnail 100 $< $@

.PHONY 声明将all 标记为只是一个目标名称,而不是一个仅当它不存在或比其依赖项旧时才需要构建的文件。

【讨论】:

    猜你喜欢
    • 2018-09-04
    • 1970-01-01
    • 2014-01-12
    • 2016-05-03
    • 2013-11-23
    • 1970-01-01
    • 2011-12-21
    • 2016-04-09
    • 2013-10-22
    相关资源
    最近更新 更多