`
cloverprince
  • 浏览: 127413 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

嫌音乐压缩不利用多核处理器,特意写了个Makefile...

阅读更多
现有很多wav文件,转换成ogg,可以:
$ oggenc -q5 *.wav


但是,如果你用的是双核,只有一个核心在工作。
所以,写一个Makefile:

SRCS = $(wildcard *.wav)
OBJS = $(patsubst %.wav,%.ogg,$(SRCS))

all: ${OBJS}

%.ogg: %.wav
	oggenc -q5 $<


然后,命令行执行:
$ make -j2   # 把2改成你的CPU的数量


讲解:
Makefile里面,$(wildcard .....)是通配符,可以匹配很多文件名。$(patsubst src,dst,targets)用来批量查找替换。同样,目标也可以用通配,比如%.ogg: %.wav,就表示凡是以.ogg结尾的目标,都用相应的.wav的文件生成。

同样的技巧也适用于C语言。
SRCS = $(wildcard *.c)
OBJS = $(patsubst %.c,%,$(SRCS))

all: myprog

myprog: ${OBJS}
	gcc -o myprog ${OBJS}

.c.:
	gcc -c -o $@ $<

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics