很多时间没搞嵌入式linux的东西,最近又拾起了以前的东西,不过感觉有点生疏。特别是linux的开发环境,系统命令的使用。刚开始吧基本的虚拟机安装配置好后,为了熟悉下linux的编译规则,我打算安装编译一个mplayer播放器玩玩。虽然以前编译过mplayer,也都通过了,不过大都忘了,这次编译感觉还是很多问题,似乎还没以前那么顺利,花了一两天的时间折腾,总算有眉目。
Fedora14下Mplayer的安装
1.安装MPlayer,应先提供安装环境,这样能让我们事倍功半。 首先检查Linux系统中是否已经安装了以下包,最好我们安装虚拟机时选择gnome这个开发包,里面有我们安装mplayer需要的工具,如gtk2-devel,glib2-devel,libpng,libpng-devel,gtk+,gtk+-devel以及GCC
编译环境
2.下载主程序:(官网下载)
MPlayer-1.0rc2.tar.bz2(已经安装成功)
下载地址:http://www.mplayerhq.hu/MPlayer/releases/MPlayer-1.0rc2.tar.bz2
官方解码器:all-20061022.tar.bz2
下载地址:http://www.mplayerhq.hu/MPlayer/releases/codecs/all-20061022.tar.bz2
官方win32_codes_all:windows-all-20061022.zip
下载地址:http://www.mplayerhq.hu/MPlayer/releases/codecs/windows-all-20061022.zip
皮肤:Abyss-1.6.tar.bz2
下载地址:http://www.mplayerhq.hu/MPlayer/skins/Abyss-1.6.tar.bz2
字体:gb2312-ming.tar.bz2
下载地址:http://www.mplayerhq.hu/MPlayer/contrib/fonts/chinesefonts/gb2312-ming.tar.bz2
3、安装过程(请把你的终端打开)
a.安装相应的解码
进入主目录后,以root身份安装 ,这样改变身份:在终端输入su或者su root ,然后输入密码就ok啦,有没有看到 $ 变成了 #
#mkdir /usr/lib/codecs
#mkdir /usr/lib/wincodecs
#tar jxvf all-20061022.tar.bz2
#mv all-20061022/* /usr/lib/codecs
#unzip windows-all-20061022.zip
#mv windows-all-20061022/* /usr/lib/wincodecs
b.安装mplayer,命令如下
#tar jxvf MPlayer-1.0rc2.tar.bz2
#cd MPlayer-1.0rc2
#./configure --prefix=/usr/local/mplayer --enable-gui --enable-freetype --codecsdir=/usr/lib/codecs/ --win32codecsdir=/usr/lib/wincodecs/ --language=zh_CN --disable-ivtv --disable-alsa
注:
——prefix=/usr/local/mplayer 是安装路径
——enable-gui 安装图形化用户界面
——enable-freetype 调节字体
——codecsdir=/usr/lib/codecs/
——win32codecsdir=/usr/lib/wincodecs 指定解码位置
——language=zh_CN 中文
——disable-ivtv 屏蔽ivtv(若不屏蔽,make时将出现-o vo_ivtv.o vo_ivtv.c错误)
——disable-alsa(如果没有就会出现snd_config_search_alias_hooks未定义的错误)
#make(如果make没有通过,可以用命令make clean清除)
错误产生:
./configure 通过 无错误make 时出错 以下是出错信息-lglib-2.0 -Wl,-z,noexecstack -ffast-math -lncurses -lpng -lz -lmng -lz -ljpeg -lungif -lasound -ldl -lpthread -lfreetype -lfontconfig -lz -lbz2 -lpthread -ldl -rdynamic -lm
/usr/bin/ld: libvo/vo_gif89a.o: undefined reference to symbol 'QuantizeBuffer'
/usr/bin/ld: note: 'QuantizeBuffer' is defined in DSO /usr/lib/libgif.so.4 so try adding it to the linker command line
/usr/lib/libgif.so.4: could not read symbols: Invalid operation
collect2: ld returned 1 exit status
make: *** [mplayer] 错误 1
似乎关键在/usr/bin/ld: note: 'QuantizeBuffer' is defined in DSO /usr/lib/libgif.so.4 so try adding it to the linker command line
解决办法:
产 生这个问题的原因是lib库引用错了. QuantizeBuffer是libgif里的东东, 但是却引用成-lungif. 找到Makefile引用的地方, 把-lungif改成-lgif就可以了.位置在:MPlayer-1.0rc2目录下包含的一个config.mak里(大概是83行)。
#make clean ; make(重新make)
#make install
c.安装皮肤,命令如下:
#tar jxvf Abyss-1.6.tar.bz2
#mv Abyss /usr/local/mplayer/share/mplayer/skins/
#cd /usr/local/mplayer/share/mplayer/skins/
#mv Abyss default
d.安装字体:
# mkdir /usr/local/mplayer/share/mplayer/font/
#tar jxvf gb2312-ming.tar.bz2
#cd gb2312-ming/gbsn00lp16/
#cp * /usr/local/mplayer/share/mplayer/font/
4.测试运行,命令如下:/usr/local/mplayer/bin/gmplayer(使用不方便)
5、vim /etc/profile
加一行:PATH=$PATH:/usr/local/mplayer/bin
然后重读:export PATH
6、此时可以用直接用mplayer或gmplayer
注:此时运行有可能出现只有图像没有声音的情况
提示如下:音频设置: 无法打开音频设备/dev/dsp: No such file or directory
解决方法如下:
#mknod /dev/dsp c 14 3
#chmod 666 /dev/dsp
这样就正常了!!
启动MPlayer,也有可能会出现如下这样的错误:
"New_Face faild. Maybe the font path is wrong. please supply the text font file. ( ~/.mplayer/subfont.ttf )."
这时候我们用系统自带的字体来代替.
# cd /usr/share/fonts/zh_CN/TrueType/
找其中一个字体文件复制到当前用户目录的 .mplayer/ 目录下
#cp gbsn00lp.ttf ~/.mplayer/subfont.ttf (其实随便一个ttf文件也可以的)
这样就解决了字体问题了.