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

(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.?ASMHAVE.?ASM.*/# define 1/p’

config.h; echo;

sed -ne ‘s/^# *define *OPT_SPEEDACCURACYSPEEDACCURACY.*/# define OPT_1/p’

config.h; echo;

sed -ne ‘s/^# *define *SIZEOF.?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 这个选项

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

⑤:安装libmad

make install

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

./mplayer xxx.mp3

文章知识点与官方知识档案匹配,可进一步学习相关知识CS入门技能树Linux入门初识Linux24975 人正在系统学习中 相关资源:MinionProfitsTracker:随着市场价格波动,轻松识别最赚钱的奴才[在…

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年4月9日
下一篇 2021年4月9日

相关推荐