Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1395329
  • 博文数量: 343
  • 博客积分: 13098
  • 博客等级: 上将
  • 技术积分: 2862
  • 用 户 组: 普通用户
  • 注册时间: 2005-07-06 00:35
文章存档

2012年(131)

2011年(31)

2010年(53)

2009年(23)

2008年(62)

2007年(2)

2006年(36)

2005年(5)

分类: LINUX

2006-03-18 11:24:51

以下是个人移植的经验,如有什么不对的地方,欢迎高手出来拍砖,谢谢!

. 移植前的准备

源代码包选用目前最新的MPlayer-1.0pre7try2.tar.bz2,这些很容易从网上找到来就不给出联结了。编译工具选择arm-linux-gcc-3.3.2.tar.bz2,这个有70M,也忘了当初从哪里收集回来的,本人就有这些收破烂的嗜好,没想到这次管用了:)2.95.3的在编译MPlayer-1.0pre7try2这个版本时会有问题,另外网上常见的gcc3.4.1版在编译libavcodec/snow.c文件时会挂掉,不知道是GNUBUG还是MPlayerBUG,没时间深究了,那位高人有结论了麻烦通报一下。补丁用不到,可以一帆风顺的完成编译的过程。

一.    安装工具及解压缩源代码

arm-linux-gcc安装到/usr/local/arm/3.3.2/bin下,确保你现在有root权限哦,假设你的arm-linux-gcc工具包放在~/src目录下,执行以下的操作。当然你也可以将arm-linux-gcc安装到其它地方。

cd /

tar jxvf ~/src/ arm-linux-gcc-3.3.2.tar.bz2

修改$PATH变量包含arm-linux-gcc,我个人习惯修改当前用户home目录下的.bash_profile文件。在.bash_profile文件中增加一行

$PATH=/usr/local/arm/3.3.2/bin: $PATH

也可以不做这一步在以后用的地方用绝对路径。

以上完成了交叉编译工具的安装,接下来该解压MPlayer的源代码了。将MPlayer-1.0pre7try2.tar.bz2拷贝到工作目录(比如~/develop)下。

cp ~/src/MPlayer-1.0pre7try2.tar.bz2 ~/develop

cd ~/develop

tar jxvf MPlayer-1.0pre7try2.tar.bz2

mv MPlayer-1.0pre7try2 MPlayer (这里只是改个名字,原来的实在太长了)

上面应该不会有什么问题的,接下来就要开始编译了,各位看官可要看好了哈,来点掌声鼓励嘛…..哈哈。

二.    开始编译

首先是配置,这里有几个要注意的地方,命令如下:

./configure --host-cc=gcc --cc=arm-linux-gcc --target=arm-armv4l-linux --enable-static --prefix=/tmp/mplayer --disable-win32  --disable-dvdread --enable-fbdev --disable-mencoder --disable-live 2>&1 | tee logfile

--host-cc=gcc是用来编译一些需要在host上执行的中间文件的,如codec-cfg,切记不能少了或搞错了!网上的《mplayerARM9(s3c2410)上的移植》(以下简称《移》文)一文介绍说遇到提示codec-cfg不能被执行出错时的解决方法是先将codec-cfg编译成i386平台的在再这里停下来时用i386codec-cfg替代从而使编译继续。通过实验设置了这个参数就不用那么麻烦了,而且整个过程也显得比较幽雅了。

--cc=arm-linux-gcc这个没什么好介绍的。如果上面没有将arm-linux-gcc的位置加入到$PATH中的话,在这个指定绝对路径好了。

--target=arm-armv4l-linux这个参数要注意的是一个分三部分,第一部分的arm是指arch,这里设定为arm;第二部分的armv4l是指具体的版本,这个要注意了,一定要跟libavcodec目录下的平台目录名一致,否则为这个平台的优化代码没办法编译进去(据我观察是这样的^_@ );第三部分是系统平台。

--enable-static是设定静态连接,不需要一堆乱七八糟的动态库,尤其对我们这些新手来说省了很多的麻烦。如果设置了这个参数就不用设置—prefix了,另外也不用执行make install

最后的一个2>&1 | tee logfile意思是将执行的情况在输出到屏幕的同时记录到logfile文件中,在控制台下编译比较有用。

剩余的几个参数没什么好介绍的了,记住--disable-mencoder要加上,mencoder在这里编译会有问题,还没有时间去研究呢。如果不清楚其它的参数的意思自己看configure文件吧,里面都有介绍。

配置完成了就该编译了。执行

make

这里在我的机器上大概花费了2-3分钟的时间。这样在当前目录下就得到可执行的mplayer文件。

阅读(2409) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~