Mini2440下移植媒体播放器MadPlayerWord文件下载.docx
- 文档编号:22977454
- 上传时间:2023-02-06
- 格式:DOCX
- 页数:14
- 大小:973.33KB
Mini2440下移植媒体播放器MadPlayerWord文件下载.docx
《Mini2440下移植媒体播放器MadPlayerWord文件下载.docx》由会员分享,可在线阅读,更多相关《Mini2440下移植媒体播放器MadPlayerWord文件下载.docx(14页珍藏版)》请在冰豆网上搜索。
libmad-0.15.1b.tar.gz(madplay移植所用到文件)
libid3tag-0.15.1b.tar.gz(madplay移植所用到文件)
zlib-1.2.5.tar.gz(lib库所需要的文件)
libstdc++.so.6.0.10(版本问题所需要的链接)
2.打开虚拟机,由于版本问题需要进行如下操作
1)删除/usr/lib/libstdc++.so.6文件(#rm/usr/lib/libstdc++.so.6)
2)把下载文件libstdc++.so.6.0.10复制到/usr/lib/下(#cplibstdc++.so.6.0.10/usr/lib/)
3)(#cd/usr/lib/)
4)建立链接(#ln–s/usr/lib/libstdc++.so.6.0.10/usr/lib/libstdc++.so.6)
5)查看链接是否成功(#strings/usr/lib/libstdc++.so.6|grepGLIBCXX)
如下图
3.建立交叉编译环境
1)将arm-linux-gcc-4.4.3.tar.gz压缩文件复制到/tmp
(#cparm-linux-gcc-4.4.3.tar.gz/tmp)
2)解压缩文件arm-linux-gcc-4.4.3.tar.gz
(#tarxvzfarm-linux-gcc-4.4.3.tar.gz–C/)
cd
3)修改文件分别在/root/.bashrc和/etc/profile文件下添加如下一行exportPATH=$PATH:
/opt/FriendlyARM/toolschain/4.4.3/bin
(#gedit/root/.bashrc)和(#gedit/etc/profile)
如下图:
保存并退出
4)重新登录系统交叉编译环境生效(在字符界面用命令logout,在图形界面直接<
注销>
)
5)重新登录后在命令行输入#arm-linux-gcc-4.4.3–v显示如下图交叉编译成功(可以编写一个c程序测试生效)
4.播放器移植
1)在根目录如下文件/opt/FriendlyARM/下建立mini2440,并在mini2440文件夹下建立madplay,再在madpalay文件夹下建立四个文件夹tarballsrc-x86src-armtarget-arm
(#cd/opt/FriendlyARM/)
(#mkdirmini2440)
(#cdmini2440)
(#mkdirmadplay)
(#cdmadplay)
(#mkdirtarballsrc-x86src-armtarget-arm)
2)把压缩包madplay-0.15.2b.tar.gzlibid3tag-0.15.1b.tar.gzlibmad-0.15.1b.tar.gz放入/opt/FriendlyARM/mini2440/madplay/tarball
(#cpmadplay-0.15.2b.tar.gzlibid3tag-0.15.1b.tar.gzlibmad-0.15.1b.tar.gz/opt/FriendlyARM/mini2440/madplay/tarball)
3)解压缩源代码madplay-0.15.2b.tar.gzlibid3tag-0.15.1b.tar.gzlibmad-0.15.1b.tar.gz
(#cd/opt/FriendlyARM/mini2440/madplay/tarball)
(#forfin$(ls*.tar.gz);
dotarxvzf$f–C../src-x86;
done)
4)编译madplay所依赖的库文件
a)libid3tag
(#cd/opt/FriendlyARM/mini2440/madplay/src-x86/libid3tag-0.15.1b)
(#./configure--prefix=/opt/FriendlyARM/mini2440/madplay/target-x86)
(#make)
(#makeinstall)
b)libmad
(#cd/opt/FriendlyARM/mini2440/madplay/src-x86/libmad-0.15.1b)
由于gcc版本问题需要删除/opt/FriendlyARM/mini2440/madplay/target-x86/libmad-0.15.1b/Makefile文件中的"
-fforce-mem"
字符串
(#cd/opt/FriendlyARM/mini2440/madplay/target-x86/libmad-0.15.1b/)
(#geditMakefile)
以上过程完毕,将在target-x86目录出现编译madplay所依赖的库文件和头文件。
c)编译安装madplay
(#cd/opt/FriendlyARM/mini2440/madplay/src-x86/madplay-0.15.2b)
将会出现如图错误:
提示我们在配置madplay之前要先安装libmad,因为我们之前已经编译并安装了依赖库,根据提示我们要设置CPPFLAGS环境变量,采用如下参数重新配置:
(#./configure--prefix=/opt/FriendlyARM/mini2440/madplay/target-x86CPPFLAGS=-I/opt/FriendlyARM/mini2440/madplay/target-x86/include)
运行结果如图所示:
设置LDFLAGS环境变量,因此再次修改配置参数如下
(#./configure--prefix=/opt/FriendlyARM/mini2440/madplay/target-x86CPPFLAGS=-I/opt/FriendlyARM/mini2440/madplay/target-x86/includeLDFLAGS=-L/opt/FriendlyARM/mini2440/madplay/target-x86/lib)
执行成功结果如下:
这说明配置已经成功,生成了编译所需要的Makefile文件,输入一下命令开始编译安装:
执行完毕,可执行文件将被安装在我们指定的目录
/opt/FriendlyARM/mini2440/madplay/target-x86目录中:
(#cd/opt/FriendlyARM/mini2440/madplay/target-x86)
(#lsbin)
abxtestmadplay
其中abxtest是附加生成的测试程序,不必理会。
5、测试PC版的madplay
拷贝一首mp3文件到/opt/FriendlyARM/mini2440/madplay/target-x86/bin
执行:
(#./madplaytest.mp3)
注意:
虚拟机中执行的文件夹为(/opt/FriendlyARM/mini2440/madplay/target-x86)
开发板中执行的文件夹为
(/opt/FriendlyARM/mini2440/madplay/target-arm)
此时在PC机上就可以听到音乐
6、构建并修正ARM版本的编译脚本build-arm
既然我们已经构建了一个简单易用的编译脚本,现在就可以通过对它稍作修改来进行交叉编译了,这就是通常所说的移植。
简单的移植只要重新指定一下编译器就可以了,可以通过修改环境变量来实现。
很多的移植所要修改的环境变量是
CC编译器,系统默认为gcc,AR库工具,用以创建和修改库,系统默认ar
LD链接器,系统默认为LDRANLIB随机库创建器,系统默认为ranlibAS汇编器,系统默认为asNM库查看工具,系统默认为nm还有一些不常用的其他环境变量,在此就不一一列举了。
需要注意的是,并不是每个移植都需要做全面的环境变量修改,有些是不需要改的,这要根据实际情况,也就是系统提示信息来调整。
除了要修改编译器环境变量,一般还需要在配置中加入目标平台指定标识,在此为“arm-linux”,修改后的脚本如下:
(将脚本放在/opt/FriendlyARM/mini2440/madplay下)
(#cd/opt/FriendlyARM/mini2440/madplay)
(#vijiaoben)
#!
/bin/sh
MADPLAY_DIR=/opt/FriendlyARM/mini2440/madplay
SRC_DIR=src-arm
TARGET_DIR=$MADPLAY_DIR/target-arm
tarxvzf./tarball/libid3tag-0.15.1b.tar.gz-C$SRC_DIR
tarxvzf./tarball/libmad-0.15.1b.tar.gz-C$SRC_DIR
tarxvzf./tarball/madplay-0.15.2b.tar.gz-C$SRC_DIR
tarxvjf./tarball/zlib-1.2.5.tar.bz2-C$SRC_DIR
exportCC=arm-linux-gcc
cd$SRC_DIR/zlib-1.2.5
./configure--prefix=$TARGET_DIR
make&
&
makeinstall
cd../..
cd$SRC_DIR/libid3tag-0.15.1b
./configure--host=arm-linux--prefix=$TARGET_DIRCPPFLAGS=-I$TARGET_DIR/include
LDFLAGS=-L$TARGET_DIR/lib
make;
makeinstall
cd../../
cd$SRC_DIR/libmad-0.15.1b
./configure--host=arm-linux--prefix=$TARGET_DIR
cd$SRC_DIR/madplay-0.15.2b
cd../../
脚本生成后增加权限
(#chmod777jiaoben)
执行脚本
(#./jiaoben)
7、下载madplay到开发板运行测试
为了区别于板子中已经存在的madplay,把新做的madplay改名为mymadplay,复制依赖库
依赖库为/opt/FriendlyARM/mini2440/madplay/target-arm/lib
和/opt/FriendlyARM/mini2440/madplay/target-arm/bin/madplay
把lib和madplay从虚拟机复制到桌面并保存到U盘
在U盘中把madplay改名为mymadplay
8、使用U盘连接到开发板,并把U盘中的mymadplay文件复制到开发板中/usr/bin文件中
在开发板中操作
(#cp/udisk/mymadplay/usr/bin)
把U盘中的lib文件夹中的所有东西移动到开发板/lib
U盘lib文件夹中的文件有(libid3tag.alibid3tag.lalibid3tag.solibid3tag.so.0libid3tag.so.0.3.0libz.alibz.solibz.so.1libz.so.1.2.5pkgconfig)其中pkgconfig是一个文件夹
pkgconfig文件夹中文件有(zlib.pc)
开发板中文件夹是不能移动的,要一个一个文件移动
在U盘lib文件夹中还有一个文件夹pkgconfig,我们需要在开发板/lib中新建pkgconfig文件夹才能把U盘lib文件夹中pkgconfig文件夹中的zlib.pc复制到开发板/lib/pkgconfig中
(#cd/lib)
(#mkdirpkgconfig)
(#cd/udisk)
(#cplib/pkgconfig/zlib.pc/lib)
(#cplib/libid3tag.a/lib)
(#cplib/libid3tag.la/lib)
(#cplib/libid3tag.so/lib)
(#cplib/libid3tag.so.0/lib)
(#cplib/libid3tag.so.0.3.0/lib)
(#cplib/libz.a/lib)
(#cplib/libz.so/lib)
(#cplib/libz.so.1/lib)
(#cplib/libz.so.1.2.5/lib)
向开发板里复制你喜欢的音乐到/usr/bin,就可以执行文件了,接着就听到美妙动听的音乐了。
例如:
(#cd/udisk/)
(#cpxd.mp3/usr/bin)
(#cdusr/bin)
(#./mymadplayxd.mp3)
在这里MP3移植成功
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Mini2440 移植 媒体播放器 MadPlayer