转自迅为开发板论坛:http://www.topeetboard.com
一、 编译环境及库文件
linux环境:ubuntu12.04
交叉编译:4.3.2
arm板子:iTOP4412开发板
库文件: libmad-0.15.1 MPlayer-1.0rc2
1. 编译 libmad
(1) 首先配置 configure 文件
# ./configure CC=arm-linux-gcc --enable-fpm=arm --host=arm-linux --disable-shared --disable-debugging --prefix=/usr/local/arm/libmad_install
(2) 完成之后找到Makefile并删除124行(可能是不记得了)“--fforce-mem”就OK
了, 原因是gcc 4.4.3已经将其去除了,所以会出现上面的错误
(3)make
(4)make install
2.编译 Mpalyer
(1)首先配置 configure 文件
# #./configure --cc=/usr/local/arm/4.3.2/bin/arm-linux-gcc --target=arm-linux --enable-static --prefix=/usr/local/arm/Mplayer1.2_install --disable-win32dll --disable-dvdread --enable-fbdev --disable-mencoder --disable-live --disable-mp3lib --enable-mad --enable-libavcodec_a --language=zh_CN --disable-armv5te --disable-armv6 --with-extraincdir=/usr/local/arm/libmad_install/include/ --with-extralibdir=/usr/local/arm/libmad_install/lib/ --host-cc=gcc --enable-ossaudio --disable-png --disable-ivtv
(2) 修改文件:
在MPlayer-1.0rc2/libmpeg2/motion_comp_arm_s.S文件
和MPlayer-1.0rc2/libavcodec/armv4l/dsputil_arm_s.S文件的开始处写入
#vim libmpeg2/motion_comp_arm_s.S //24行开始
内容:
#ifndef HAVE_PLD
.macro pld reg
.endm
#vim libavcodec/armv4l/dsputil_arm_s.S //21行开始
内容:
#ifndef HAVE_PLD
.macro pld reg
.endm
(3) 修改Makefile
在Makefile的前面(95行)加入:
INSTALLSTRIP := # (将其置为空即可)
(4) make
(5) make install
2. 测试
我提供了两个测试代码是移植的友善之臂的两个项目(本来是qt4的我修改了以下qt5可以编译构建)
1. 广告机:adsdemo
2. 播放器:myplayer
运行:将编译好的程序和mplayer拷贝到开发板/bin/目录: ./adsdemo –qws &
注意:示例程序运行会有写问题可能是内核里要修改选项,大家可以百度以下.
我只提供机制不提供策略,仅供参考.