很多時間沒搞嵌入式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檔案也可以的)
這樣就解決了字型問題了.