Chinaunix首页 | 论坛 | 博客
  • 博客访问: 176645
  • 博文数量: 20
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 220
  • 用 户 组: 普通用户
  • 注册时间: 2015-05-01 22:23
文章存档

2018年(5)

2017年(6)

2016年(1)

2015年(8)

我的朋友

分类: 嵌入式

2015-05-08 00:46:51

转载时请注明出处和作者联系方式
文章出处:http://blog.chinaunix.net/uid/30230931.html
作者联系方式:JonLee <>

MPlayer版本:
madplay-0.15.2b.tar.gz
交叉编译器版本:
arm-linux-gcc 4.1.2
操作系统平台:
Linux -- ubuntu11.04
所需源码:
       madplay-0.15.2b.tar.gz
        libid3tag-0.15.1b.tar.gz 
        zlib-1.2.5.tar.gz
        libmad-0.15.1b.tar.gz
一 :安装交叉编译工具(略)

二 :编译zlib-1.2.5.tar.gz 

#tar xzvf zlib-1.2.5.tar.gz
#cd zlib-1.2.5
# ./configure --prefix=/home/pro/madplayer
修改Makefile
CC=arm-linux-gcc
AR=arm-linux-ar rc
RANLIB=arm-linux-ranlib
CPP=arm-linux-gcc -E
LDSHARED=arm-linux-gcc shared -Wl.........
#make
#make install

三 :编译libid3tag-0.15.1b.tar.gz

#tar xzvf libid3tag-0.15.1b.tar.gz
#cd libid3tag-0.15.1b/
#./configure CC=arm-linux-gcc --host=arm-linux --disable-shared --enable-static --prefix=/home/pro/madplayer CPPFLAGS=-I/home/pro/madplayer/include LDFLAGS=-L/home/pro/madplayer/lib
#make
#make install

四 :编译libmad-0.15.1b.tar.gz

#tar xzvf libmad-0.15.1b.tar.gz
#cd libmad-0.15.1b/
#./configure CC=arm-linux-gcc --host=arm-linux --disable-shared --enable-static --prefix=/home/pro/madplayer CPPFLAGS=-I/home/pro/madplayer/include LDFLAGS=-L/home/pro/madplayer/lib
#make
出现错误:
cc1: error: unrecognized command line option "-fforce-mem"
make[2]: *** [version.lo] 错误 1
解决方法:
修改Makefile,将"-fforce-mem"选项去掉
#make
#make install

五 :编译madplay-0.15.2b.tar.gz

#tar xzvf madplay-0.15.2b.tar.gz
#cd madplay-0.15.2b/
# ./configure CC=arm-linux-gcc --host=arm-linux --disable-shared --enable-static --prefix=/home/pro/madplayer CPPFLAGS=-I/home/pro/madplayer/include LDFLAGS=-L/home/pro/madplayer/lib
#make
当前目录生成可执行文件madplay
        执行:
#arm-linux-readelf -d madplay
可以知道需要的动态库
Dynamic section at offset 0x2617c contains 26 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]
 0x0000000c (INIT)                       0x93b0

解决静态编译,在编译完成我后的选项加 -static
arm-linux-gcc -Wall -g -O2 -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/home/pro/madplayer/lib /home/pro/madplayer/lib/libmad.a -lid3tag -lm -static

It's OK!!!
阅读(2929) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~