madplay移植到mini2440

1 篇文章 0 订阅
0 篇文章 0 订阅

移植环境:

主  机:VMWare--Fedora 9

开发板:Mini2440--256MB Nand,Kernel:2.6.32.2

编译器:arm-linux-gcc-4.3.2.tgz

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://cdnetworks-kr-1.dl.sourceforge.net/project/mad/libid3tag/0.15.1b/libid3tag-0.15.1b.tar.gz

http://cdnetworks-kr-2.dl.sourceforge.net/project/mad/libmad/0.15.1b/libmad-0.15.1b.tar.gz

http://www.gzip.org/zlib/zlib-1.1.4.tar.gz

 下载完成后,将这四个文件传送到Fedora系统中的madplay目录下

在madplay目录下建立一个build文件夹用来存放编译生成的文件

[root@localhost madplay]# mkdir build

 

编译zlib-1.1.4

[root@localhost madplay]# tar xvzf zlib-1.1.4.tar.gz

[root@localhost madplay]# cd zlib-1.1.4

[root@localhost zlib-1.1.4]# vi configure

24        AR=${AR-"ar rc"}

25  RANLIB=${RANLIB-"ranlib"}

63  cc=${CC-gcc}

 修改为:

AR=${AR-"arm-linux-ar rc"}

RANLIB=${RANLIB-"arm-linux-ranlib"}

cc=${CC-arm-linux-gcc}

[root@localhost zlib-1.1.4]# ./configure --prefix=/opt/software/madplay/build

[root@localhost zlib-1.1.4]# make

[root@localhost zlib-1.1.4]# make install

[root@localhost zlib-1.1.4]# cd ..

[root@localhost madplay]# cd build/

[root@localhost build]# ls

include  lib

生成了include  lib连个目录,及相应的文件。

 

编译libid3tag-0.15.1b

[root@localhost madplay]# tar xvzf libid3tag-0.15.1b.tar.gz

[root@localhost madplay]# cd libid3tag-0.15.1b

[root@localhost libid3tag-0.15.1b]# ./configure CC=arm-linux-gcc --prefix=/opt/software/madplay/build --host=arm-linux --disable-debugging  --enable-static CPPFLAGS=-I/opt/software/madplay/build/include LDFLAGS=-L/opt/software/madplay/build/lib

[root@localhost libid3tag-0.15.1b]# make

[root@localhost libid3tag-0.15.1b]# make install

 

编译libmad-0.15.1b

[root@localhost madplay]# tar -xvzf libmad-0.15.1b.tar.gz

[root@localhost madplay]# cd libmad-0.15.1b

[root@localhost libid3tag-0.15.1b]# ./configure CC=arm-linux-gcc --prefix=/opt/software/madplay/build --host=arm-linux --disable-debugging  --enable-static CPPFLAGS=-I/opt/software/madplay/build/include LDFLAGS=-L/opt/software/madplay/build/lib

[root@localhost libid3tag-0.15.1b]# make

[root@localhost libid3tag-0.15.1b]# make install

 

编译libmad-0.15.1b

[root@localhost madplay]# tar -xvzf libmad-0.15.1b.tar.gz

[root@localhost madplay]# cd libmad-0.15.1b

[root@localhost libmad-0.15.1b]# ./configure CC=arm-linux-gcc --host=arm-linux --prefix=/opt/software/madplay/build --disable-shared

[root@localhost libmad-0.15.1b]# make

[root@localhost libmad-0.15.1b]# make install

 

编译madplay-0.15.2b

[root@localhost madplay]# tar xvzf madplay-0.15.2b.tar.gz

[root@localhost madplay]# cd madplay-0.15.2b

[root@localhost madplay-0.15.2b]# ./configure CC=arm-linux-gcc --host=arm-linux --prefix=/opt/software/madplay/build --enable-static --disable-shared CPPFLAGS=-I/opt/software/madplay/build/include LDFLAGS=-L/opt/software/madplay/build/lib

 

[root@localhost madplay-0.15.2b]# make

[root@localhost madplay-0.15.2b]# make install

 

编译成功后生成的可执行文件madplay在madplay/build/bin目录下,为了和开发板上自带的madplay区别,将madplay重命名为mymadplay,

[root@localhost bin]# mv madplay mymadplay

 

优化:

[root@localhost bin]# arm-linux-strip mymadplay

 

查看所需的库文件。

[root@localhost bin]# arm-linux-readelf -d  mymadplay

 

Dynamic section at offset 0x25ef0 contains 29 entries:

  Tag        Type                         Name/Value

 0x00000001 (NEEDED)                     Shared library: [libid3tag.so.0]

 0x00000001 (NEEDED)                     Shared library: [libm.so.6]

 0x00000001 (NEEDED)                     Shared library: [libc.so.6]

 0x0000000f (RPATH)                      Library rpath: [/opt/software/madplay/build/lib]

 0x0000001d (RUNPATH)                    Library runpath:

 

libm.so.6,libc.so.6在busybox制作根文件系统是已经生成在/lib目录下了,所以只要将/opt/software/madplay/build/lib目录下的libid3tag.so.0文件拷到/lib目录下即可,但是libid3tag.so.0仅仅是一个链接文件,所以,删除libid3tag.a  libid3tag.la libmad.a  libmad.la  libz.a文件,然后将lib文件打包,拷贝到开发板然后解压即可。

 

[root@localhost build]# tar cvzf lib.tar.gz lib

 

将可执行文件拷到开发板的/usr/bin目录下将madplay的库文件放到开发板的/lib目录下

 

测试:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值