您的位置:首页 > 运维架构 > Linux

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

2013-11-01 18:55 549 查看
转自: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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: