Madplay移植到sep4020终极版
1 ,移植 madplay 前的一些准备工作:
首先,从网站上下载以下的 4 个包:
madplay-0.15.2b.tar.gz 、 libmad-0.15.1b.tar.gz 、 libid3tag-0.15.1b.tar.gz
和 zlib-1.1.4.tar.gz
其中前面的三个包可以在
http://sourceforge.net/project/showfiles.php?group_id=12349 下载
后一个包可以在 http://www.gzip.org/zlib/zlib-1.1.4.tar.gz 中找到
为了编译这个播放器,还需要一个交叉编译器,我用的是 arm-linux-gcc 3.4.1 版本
2, 将下载好的包拷贝到根目录下
先编译 zlib 库:
[root@localhost /]# tar -zxvf zlib-1.1.4.tar.gz
[root@localhost /]# cd /zlib-1.1.4
[root@localhost zlib-1.1.4]# ./configure --prefix=/usr/local/arm/3.4.1/arm-linux
[root@localhost zlib-1.1.4]# gedit Makefile
对第 15 行做如下修改:
CC=/usr/local/arm/3.4.1/bin/arm-linux-gcc
对 31 行做如下修改:
AR=/usr/local/arm/3.4.1/bin/arm-linux-ar rcs
对 32 行做如下修改:
RANLIB=/usr/local/arm/3.4.1/bin/arm-linux-ranlib
注意:要将gcc换成 /usr/local/arm/3.4.1/bin/arm-linux-gcc,否则会有格式错误。
保存并退出 makefile 文件
[root@localhost zlib-1.1.4]# make
[root@localhost zlib-1.1.4]# make install
编译完成了之后,在如下的目录查看是否有 libz.a 文件,有的话,就成功了。
[root@localhost /]# cd usr/local/arm/3.4.1/arm-linux/lib
3. 编译 libid3tag
[root@localhost /]# tar -zxvf libid3tag-0.15.1b.tar.gz
[root@localhost /]# cd libid3tag-0.15.1b
[root@localhost libid3tag-0.15.1b]# ./configure CC=/usr/local/arm/3.4.1/bin/arm-linux-gcc --prefix=/usr/local/arm/3.4.1/arm-linux
--host=arm-linux --disable-debugging --disable-shared --enable-static CPPFLAGS=-I/usr/local/arm/3.4.1/arm-linux/include LDFLAGS=-L/usr/local/arm/3.4.1/arm-linux/lib
[root@localhost libid3tag-0.15.1b]# make
[root@localhost libid3tag-0.15.1b]# make install
4. 编译 libmad
[root@localhost /]# tar -zxvf libmad-0.15.1b.tar.gz
[root@localhost /]# cd libmad-0.15.1b
[root@localhost libmad-0.15.1b]# ./configure CC=/usr/local/arm/3.4.1/bin/arm-linux-gcc --prefix=/usr/local/arm/3.4.1/arm-linux
--host=arm-linux --disable-debugging --disable-shared --enable-static CPPFLAGS=-I/usr/local/arm/3.4.1/arm-linux/include LDFLAGS=-L/usr/local/arm/3.4.1/arm-linux/lib
[root@localhost libmad-0.15.1b]# make
[root@localhost libmad-0.15.1b]# make install
5. 编译 madplay
[root@localhost /]# tar -zxvf madplay-0.15.2b.tar.gz
[root@localhost /]# cd madplay-0.15.2b
[root@localhost madplay-0.15.2b]# ./configure CC=/usr/local/arm/3.4.1/bin/arm-linux-gcc --prefix=/usr/local/arm/3.4.1/arm-linux
--host=arm-linux --disable-debugging --disable-shared --enable-static CPPFLAGS=-I/usr/local/arm/3.4.1/arm-linux/include LDFLAGS=-L/usr/local/arm/3.4.1/arm-linux/lib
[root@localhost madplay-0.15.2b]# make
[root@localhost madplay-0.15.2b]# make install
这个时候到 madplay-0.15.2b 文件夹下去看下可执行文件 madplay 的大小,发现只有 240K
这是由于动态编译的原因,需要进行静态编译
解决办法:
[root@localhost madplay-0.15.2b]# rm madplay
[root@localhost madplay-0.15.2b]# /usr/local/arm/3.4.1/bin/arm-linux-gcc -Wall -O2 -fomit-frame-pointer -o madplay madplay.o getopt.o getopt1.o version.o resample.o filter.o tag.o crc.o rgain.o player.o audio.o audio_aiff.o audio_cdda.o audio_hex.o audio_null.o audio_raw.o audio_snd.o audio_wave.o audio_oss.o
-L/usr/local/arm/3.4.1/arm-linux/lib /usr/local/arm/3.4.1/arm-linux/lib/libmad.a /usr/local/arm/3.4.1/arm-linux/lib/libid3tag.a -lz -lm –static
这个时候再去 madplay-0.15.2b 文件夹看看 madplay 的大小,发现有 880K
^_^ ,成功了。
将 madplay 可执行文件拷贝到 nfs 文件夹下面,并将一首歌拷贝到 nfs 的 tmp 目录下
执行如下操作:
./madplay /tmp/sample.mp3
哈哈,这个时候就会听到美妙的音乐了, good !