mplayer linux arm,【嵌入式】交叉编译移植 Mplayer 到 ARM开发板

一、基本信息

1、移植环境

①:ubuntu16.04

②:iMX6Q开发板

2、移植所需软件源码

①:libmad libmad 下载

②:mplayer mplayer下载

③:百度网盘下载:

链接:https://pan.baidu.com/s/1KM3VNY4RWhBKFsN4me8shg

提取码:rds1

二、移植Libmad

①:版本选择:libmad-0.15.1b.tar.gz

②:libmad准备工作

进入下载目录 解压 libmad-0.15.1b.tar.gz

tar xvf libmad-0.15.1b.tar.gz

解压之后进入libmad-0.15.1b

cd libmad-0.15.1b

③:配置libmad

./configure --host=arm-linux-gnueabihf --disable-debugging --enable-static --enable-shared --enable-speed --prefix=/home/avdisplay/mplayer

0781e5ab2eb7b9b6fae3057f3e35fa17.png

④:编译libmad

make

出现下面的报错

deb66a364be1f953c55f310c4ab8f069.png

(sed -e '1s|.*|/*|' -e '1b' -e '$s|.*| */|' -e '$b' \

-e 's/^.*/ *&/' ./COPYRIGHT; echo; \

echo "# ifdef __cplusplus"; \

echo 'extern "C" {'; \

echo "# endif"; echo; \

if [ ".-DFPM_ARM" != "." ]; then \

echo ".-DFPM_ARM" | sed -e 's|^\.-D|# define |'; echo; \

fi; \

sed -ne 's/^# *define *\(HAVE_.*_ASM\).*/# define \1/p' \

config.h; echo; \

sed -ne 's/^# *define *OPT_\(SPEED\|ACCURACY\).*/# define OPT_\1/p' \

config.h; echo; \

sed -ne 's/^# *define *\(SIZEOF_.*\)/# define \1/p' \

config.h; echo; \

for header in version.h fixed.h bit.h timer.h stream.h frame.h synth.h decoder.h; do \

echo; \

sed -n -f ./mad.h.sed ./$header; \

done; echo; \

echo "# ifdef __cplusplus"; \

echo '}'; \

echo "# endif") >mad.h

make all-recursive

make[1]: Entering directory '/home/avdisplay/software/libmad-0.15.1b'

make[2]: Entering directory '/home/avdisplay/software/libmad-0.15.1b'

if /bin/bash ./libtool --mode=compile arm-linux-gnueabihf-gcc -DHAVE_CONFIG_H -I. -I. -I. -DFPM_ARM -DASO_INTERLEAVE1 -DASO_IMDCT -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 -o version.lo version.c; \

then mv -f ".deps/version.Tpo" ".deps/version.Plo"; else rm -f ".deps/version.Tpo"; exit 1; fi

mkdir .libs

arm-linux-gnueabihf-gcc -DHAVE_CONFIG_H -I. -I. -I. -DFPM_ARM -DASO_INTERLEAVE1 -DASO_IMDCT -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

arm-linux-gnueabihf-gcc: error: unrecognized command line option '-fforce-mem'

Makefile:383: recipe for target 'version.lo' failed

make[2]: *** [version.lo] Error 1

make[2]: Leaving directory '/home/avdisplay/software/libmad-0.15.1b'

Makefile:424: recipe for target 'all-recursive' failed

make[1]: *** [all-recursive] Error 1

make[1]: Leaving directory '/home/avdisplay/software/libmad-0.15.1b'

Makefile:249: recipe for target 'all' failed

make: *** [all] Error 2

arm交叉编译不支持 -fforce-mem 这个选项

解决方法:修改编译选项

vim Makefile

在129 行 删除 -fforce-mem 这个选项

1c2236a2fccd5c224fe3573b350f0ffe.png

修改前

CFLAGS = -Wall -O -fforce-mem -fforce-addr -fthread-jumps -fcse-follow-jumps -fcse-skip-blocks -fexpensive-optimizations -fregmove -fschedule-insns2 -fstrength-reduce -fomit-frame-pointer

修改后

CFLAGS = -Wall -O -fforce-addr -fthread-jumps -fcse-follow-jumps -fcse-skip-blocks -fexpensive-optimizations -fregmove -fschedule-insns2 -fstrength-reduce -fomit-frame-pointer

再次执行make编译

406b3f14229f5256eaf831d2e0d9fc89.png

这次没有报错了,编译成功。

⑤:安装libmad

make install

4f8863e5762d8766ef724b03338f4ee9.png

成功安装ibmad

三、移植Mplayer

①:版本选择:MPlayer-1.4.tar.xz

②:mplayer准备工作

进入下载目录 解压 MPlayer-1.4.tar.xz

tar xvf MPlayer-1.4.tar.xz

解压之后进入MPlayer-1.4

cd MPlayer-1.4

③:配置mplayer

./configure --prefix=/home/avdisplay/mplayer --cc=arm-linux-gnueabihf-gcc --disable-gui --target=arm-linux --host-cc=gcc --disable-freetype --enable-fbdev --disable-mencoder --disable-sdl --disable-live --disable-dvdread --disable-libdvdcss-internal --disable-x11 --enable-cross-compile --disable-dvdnav --disable-dvdread-internal --disable-jpeg --disable-tga --disable-pnm --disable-tv --disable-ivtv --disable-fontconfig --disable-xanim --disable-win32dll --disable-armv5te --disable-armv6 --enable-static

④:编译mplayer

make

⑤:mplayer可执行文件

58a5c8797ae42094b1ca6539c9e04d36.png

这时候我们把这个编译得到的 mplayer可执行文件 拷贝到开发板就可以用了

./mplayer xxx.mp3

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值