您的位置:首页 > 其它

移植madplay到s5pv210下

2013-08-03 14:57 337 查看
注释编译

--prefix:指定你编译之后,执行make install时,生成的目录,没有使用--prefix的话,就会执行默认的目录,什么目录执行之后就知道了

CC=arm-linux-gcc

--host: 编译器类型如用arm-unknown-linux-gnueabi-gcc则填--host=arm-unknown-linux-gnueabi

--disable-debugging:禁止调试

--enable-static:静态库

--enable-shared:动态库

-I :include 所需的头文件路径

-L :lib 所需的库的路径

一 编译zlib-1.1.4

1 cd zlib-1.1.4

2 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}

3

./configure --prefix=/opt/madplay_source/build

4 make && make install

二 编译libid3tag-0.15.1b

1 tar xvzf libid3tag-0.15.1b.tar.gz

2 cd libid3tag-0.15.1b

3 ./configure CC=arm-linux-gcc --prefix=/opt/madplay_source/build --host=arm-linux --disable-debugging --enable-static CPPFLAGS=-I/opt/madplay_source/build/include LDFLAGS=-L/opt/madplay_source/build/lib

4 make && make install

三 编译libmad-0.15.1b

1 tar -xvzf libmad-0.15.1b.tar.gz

2 cd libmad-0.15.1b

3 ./configure CC=arm-linux-gcc --prefix=/opt/madplay_source/build --host=arm-linux --disable-debugging --enable-static CPPFLAGS=-I/opt/madplay_source/build/include LDFLAGS=-L/opt/madplay_source/build/lib

或者

./configure CC=arm-linux-gcc --prefix=/opt/madplay_source/build --host=arm-linux --disable-debugging --disable-shared --enable-static CPPFLAGS=-I/opt/madplay_source/build/include LDFLAGS=-L/opt/madplay_source/build/lib

4 make

arm-linux-gcc -DHAVE_CONFIG_H -I. -I. -I. -DFPM_ARM -DASO_INTERLEAVE1 -DASO_IMDCT -I/opt/madplay_source/build/include -Wall -O -fforce-mem -fforce-addr -fthread-jumps -fcse-follow-jumps -fcse-skip-blocks -fexpensive-optimizations -fregmove -fschedule-insns2
-fstrength-reduce -fomit-frame-pointer -MT version.lo -MD -MP -MF .deps/version.Tpo -c version.c -fPIC -DPIC -o .libs/version.o

cc1: error: unrecognized command line option "-fforce-mem"

make[2]: *** [version.lo] 错误 1

如果此时make,make install就会报错,说是"-fforce-mem"参数不能识别。不知道是什么原因,然后就在网上查了一通,好像说是我机器环境的gcc版本(我的是gcc 4.3.2)过高导致的,所以不能识别其中的"-fforce-mem"参数选项,真是搞不懂,版本高还识别不了。。。

于是乎就打开当前目录下的Makefile文件,去掉里面出现的"-fforce-mem",然后再make,make install就OK了

5

6 make install

四 编译madplay-0.15.2b

1 tar -zxvf madplay-0.15.2b.tar.gz

2 cd madplay-0.15.2b

3 ./configure CC=arm-linux-gcc --host=arm-linux --prefix=/opt/madplay_source/build --disable-debugging --disable-shared --enable-static CPPFLAGS=-I/opt/madplay_source/build/include LDFLAGS=-L/opt/madplay_source/build/lib

4 make

5 make install



1 将build/bin/下的madplay 改名为my_madplay

2 优化

arm-linux-readelf -d my_madplay

Dynamic section at offset 0x24ef8 contains 28 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/madplay_source/build/lib]

0x0000001d (RUNPATH) Library runpath: [/opt/madplay_source/build/lib]

将需要的库拷贝到开发板上

libm.so.6,libc.so.6在busybox制作根文件系统是已经生成在/lib目录下了,所以只要将/opt/software/madplay/build/lib目录下的libid3tag.so.0文件拷到/lib目录下即可

3 cp * /opt/rootfs/sound_bin/ -a

ll sound_bin/lib

总计 408

-rw-r--r-- 1 root root 84224 08-02 09:25 libid3tag.a

-rwxr-xr-x 1 root root 869 08-02 09:25 libid3tag.la

lrwxrwxrwx 1 root root 18 08-02 09:48 libid3tag.so -> libid3tag.so.0.3.0

lrwxrwxrwx 1 root root 18 08-02 09:48 libid3tag.so.0 -> libid3tag.so.0.3.0

-rwxr-xr-x 1 root root 126265 08-02 09:25 libid3tag.so.0.3.0

-rw-r--r-- 1 root root 98696 08-02 09:37 libmad.a

-rwxr-xr-x 1 root root 796 08-02 09:37 libmad.la

-rwxr-xr-x 1 root root 75600 08-01 17:56 libz.a

4 测试

加载驱动

[root@FriendlyARM /]# insmod snd-soc-wm8960.ko

[root@FriendlyARM /]# insmod snd-soc-mini210-wm8960.ko

[ 46.236633] FriendlyARM http://www.arm9.net

[ 46.349651] asoc: wm8960-hifi <-> samsung-i2s.0 mapping ok

[root@FriendlyARM /]# fa

fa-network-service fa_codec_ctrl fakeidentd false

[root@FriendlyARM /]# fa_codec_ctrl mini210

[root@FriendlyARM /]# madplay just_like_me.mp3

MPEG Audio Decoder 0.15.2 (beta) - Copyright (C) 2000-2004 Robert Leslie et al.

Title: Just Like Me

Artist: Jeff Hanson

Album: Son

Track: 8

Year: 2003

[ 123.413666] EPLL Rate changes from 80000000 to 67738000
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: