首页 > 解决方案 > 使用多个目标调用 make 的 Makefile

问题描述

我在生成文件中有一条规则,用于sox将 wav 文件转换为另一种格式。

生成文件:

INPUTFILE?=file1.wav
OUTFILE=$(INPUTFILE:.wav=.s32)

wav_to_s32:
    @sox $(INPUTFILE) -r 16000 $(OUTFILE)

我如何使这个工作在输入指定的多个文件(具有多个输出)?

INPUTFILE?=file1.wav file2.wav file3.wav

标签: makefilecygwingnu-make

解决方案


我将在您的 makefile 中使用以下模式规则:

%.s32: %.wav
    sox $< -r 16000 $@

.s32上面的规则将从文件构建.wav文件。

使用 makefile 中的该规则,您可以make通过以下方式调用多个目标:

 $ make foo.s32 bar.s32
 sox foo.wav -r 16000 foo.s32
 sox bar.wav -r 16000 bar.s32

它分别从和生成foo.s32和。bar.s32foo.wavbar.wav


推荐阅读