Unix Makefile-从图片生成缩略图
我正在尝试制作一个Makefile。我有一个文件夹叫图片和一个文件夹叫拇指。在图片中有称为pic1.jpg、pic2.jpg、pic3.jpg等的图片。我想从这些图片制作缩略图,并将它们放在thumbs文件夹中。这就是我尝试过的:Unix Makefile-从图片生成缩略图,unix,makefile,gnu,Unix,Makefile,Gnu,我正在尝试制作一个Makefile。我有一个文件夹叫图片和一个文件夹叫拇指。在图片中有称为pic1.jpg、pic2.jpg、pic3.jpg等的图片。我想从这些图片制作缩略图,并将它们放在thumbs文件夹中。这就是我尝试过的: infiles = $(wildcard pictures/*.jpg) outfiles = $(subst pictures,thumbs, $(infiles)) all : $(outfiles) convert -thumbnail 100
infiles = $(wildcard pictures/*.jpg)
outfiles = $(subst pictures,thumbs, $(infiles))
all : $(outfiles)
convert -thumbnail 100 pictures/*.jpg thumbs/*.jpg
有人知道我做错了什么吗?你的makefile说“这里是如何装箱all
;当所有outfile
都是最新的时,就可以制作了”,但你没有说如何创建这些文件
一种更惯用的方法是为每个单独的文件指定一个依赖项,然后Make可以从中获取它。换句话说,假设all
与您所做的一样依赖于outfiles
,然后分别指定每个outfile
如何依赖于其各自的infle
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 $< $@
infiles=$(通配符图片/*.jpg)
输出文件=$(子图片、拇指、$(填充))
冒牌货:全部
全部:$(外部文件)
拇指/%.jpg:pictures/%.jpg
mkdir-p拇指
#这里的猜测;可能会更新命令
转换-缩略图100$<$@
.PHONY
声明将all
标记为一个目标名称,而不是一个仅在其不存在或早于其依赖项时才需要生成的文件。它是如何工作的?目标目录是否存在?它是否已经包含部分或全部这些文件?