Linux 2.6.22.19移植到S3C2410(gec2410)之:madplay移植[转]

转自:http://hi.baidu.com/albert_wu/item/090588de2db7e5ef3cc2cbf3

2.6.22.19移植到S3C2410(gec2410)之:madplay移植
参考文献:
《编译madplay的文档》
http://blog.chinaunix.net/u3/90065/showart_1779490.html
《移植madplay的过程》
http://blog.mcuol.com/User/allenwoo/Article/6754_1.htm

平台信息:
目标板     :GEC2410
OS           :Fedora Cor8(FC8)
编译器     :arm-linux-gcc-3.4.1

        本来打算移植mplayer的,不过后来发现移植mplayer到2410开发板上会出现很多莫名其妙的问题,要么要图像没声音,要么有了声音没图像,而且还很难!呵呵,移植这东西不是自虐吗?正好看网上很多人在移植mplayer大受打击后改而移植madplay而快乐莫名,所以就直接移植madplay咯!好,我们开始吧!!
由于网上关于madplay的编译已经写的很是详细了,所以就间接性COPY网上的吧,为了效率嘛!哈哈。。。


编译步骤:
1. 移植madplay前的准备。
madplay的移植需要以下的几个包:

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. 先面建立了一个名为“madplayer”的目录,我的madplayer目录为/yoso/madplayer。然后把四个gz都解压到这个目录下面,同时还建立了一个名为“libz”的目录,作为存放所生成的的地方,总共在/madplayer目录下,有5 个目录。
[root@localhost madplayer]# ls                                                      
libid3tag-0.15.1b libmad-0.15.1b libz madplay-0.15.2b zlib-1.2.3                                                                                                  

3. 开始编译zlib-1.2.4,因为编译libid3tag需要用到
先./configure --prefix=/yoso/madplayer/libz。生成Makefile文件,
再修改(不能跟上面的步骤调转)makefile文件:
CC=/usr/local/arm/3.4.1/bin/arm-linux-gcc
AR=/usr/local/arm/3.4.1/bin/arm-linux-ar rcs
RANLIB=/usr/local/arm/3.4.1/bin/arm-linux-ranlib

   也可以直接修改configure参数而不需要等configure出Makefile后修改Makefile,方法如下:
(1)把AR=${AR-" ar rc"}改为:AR=${AR-"/usr/local/arm/3.4.1/bin/arm-linux-ar rcs"}
(2)把RANLIB=${RANLIB-"ranlib"}改为:RANLIB=${RANLIB-"/usr/local/arm/3.4.1/bin/arm-linux-ranlib"}
(3)把cc=${CC-gcc}改为:cc=${CC-/usr/local/arm/3.4.1/bin/arm-linux-gcc}
(4)然后输入:./configure --prefix=/yoso/madplayer/libz

注: 如果之前编译过,则先要把上次编译的结果清除:make distclean

接着 make
然后make install
编译好之后就可以在上面prefix指定的目录下的lib目录下找到libz.a这个库。

4. 编译libid3tag
./configure CC=/usr/local/arm/3.4.1/bin/arm-linux-gcc --prefix=/yoso/madplayer/libz --host=arm-linux --disable-shared CPPFLAGS=-I/usr/local/arm/3.4.1/arm-linux/include LDFLAGS=-L/usr/local/arm/3.4.1/arm-linux/lib
然后make, make install

5. 编译libmad
./configure CC=/usr/local/arm/3.4.1/bin/arm-linux-gcc --prefix=/yoso/madplayer/libz --host=arm-linux --disable-shared CPPFLAGS=-I/usr/local9/arm/3.4.1/arm-linux/include LDFLAGS=-L/usr/local9/arm/3.4.1/arm-linux/lib
然后,make ,make install

6. 编译madplay
./configure CC=/usr/local/arm/3.4.1/bin/arm-linux-gcc --prefix=//yoso/madplayer/libz --host=arm-linux --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
注意一定要加上enable-static设置为静 态,否则将会初相madplay: error while loading shared libraries: cannot open shared object file: cannot load sharedobject file: No such file or directory的错误。
然后,make
这样就生成了madplay可执行文件

7.把adplay可执行文件下载到板子上试了一下,输入
# ./madplay songbie.mp3
美妙的歌曲荡漾耳边

注意,要想听到音乐,你得确保你已经安装了声卡驱动,否则你会出现类似以下的错误提示:
PEG Audio Decoder 0.15.2 (beta) - Copyright (C) 2000-2004 Robert Leslie et al.
audio: /dev/dsp: No such file or directory

你可能感兴趣的:(linuxMP3播放器)