移植madplay
需要如下檔案:
madplay-0.15.2b.tar.gz
,libmad-0.15.1b.tar.gz
,libid3tag-0.15.1b.tar.gz
和zlib-1.2.3.tar.gz。
zlib-1.1.4.tar.gz (zlib-1.2.3.tar.gz類似)
1、配置編譯環境
我們使用的是裝有
vmware
的redhat
開發環境,交叉編譯器放
/usr/local/arm-uclinux-tools/bin/
目錄下的。首先在根目錄下面建立了乙個名為「
madplayer
」的目錄,然後把四個
gz都解壓到這個目錄下面,同時還建立了乙個名為「
libz
」的目錄,作為存放所生成的檔案的地方,總共在
/madplayer
目錄下,有
5 個目錄。
[root@localhost madplayer]# ls
libid3tag-0.15.1blibmad-0.15.1blibzmadplay-0.15.2bzlib-1.2.3
[root@localhost madplayer]#
2、編譯zlib-1.2.3
首先配置
configure
檔案,改動如下: u
把ar=$
改為:
ar=$
實際上arm-linux的話,寫成
ar=$
下面同理 u
把ranlib=$
改為:
ranlib=$ u
把cc=$
改為:
cc=$ u
然後儲存它,使用如下指令編譯:
如果之前編譯過,則先要把上次編譯的結果清除:
make distclean
然後輸入:
./configure --prefix=/root/madplayer/libz
待上步完成後,輸入:
make
然後再輸入:
make install
到此,編譯
zlib-1.2.3
就算完成了。
3、編譯libid3tag-0.15.1b
在完成zlib-1.1.4
的編譯後,才能進行
libid3tag-0.15.1b
的編譯。 配置
makefile:
./configure --host=arm-uclinux-elf --prefix=/root/madplayer/libz --disable-shared
arm-linux的話,寫成--host=arm-linux即可,下面同理
cppflags=-i/root/madplayer/libz/include
ldflags=-l/root/madplayer/libz/lib;
然後使用:
make,
最後使用:
make install
完成libid3tag-0.15.1b
的編譯。
4、編譯libmad-0.15.1b 配置
makefile:
./configure
--host=arm-uclinux-elf --prefix=/root/madplayer/libz –disable-shared
然後使用:
make
,生成所需的庫檔案;
最後使用:
make install
完成libmad-0.15.1b
的編譯。
5、編譯madplay-0.15.2b 配置
makefile:
./configure --host=arm-uclinux-elf --prefix=/root/madplayer/libz --disable-shared --enable-static cppflags=-i/root/madplayer/libz/include
ldflags=-l/root/madplayer/libz/lib;
然後使用:
make
,最後在
madplay-0.15.2b
目錄下面生成大小為
617kb
的madplay
的可執行檔案。
6、然收把madplay
的可執行檔案放到
romfs
的bin
目錄下,用
genromfs
工具形成
romfs.img
***
歌曲了。
預設格式:
madplay /yourname/*.***
7、編譯中,可能遇到的問題: u
error: libz was not found
*** you must first install zlib (libz) before you can build this package.
*** if zlib is already installed, you may need to use the ldflags
*** environment variable to specify its installed location, e.g. -l
則是沒有正確配置編譯好
zlib
導致的,如果要正確配置,參考步驟2。
u最後編譯出來的
mdaplay
madplay: error while loading shared libraries: cannot open shared object file: cannot load sharedobject file: no such file or directory
則是因為在編譯時沒有設定好靜態鏈結和共享庫,正確的配置就是在編譯
,libid3taglibmad
和madplay
時,加上
disable-shared
選項,同時在
madplay
的配置語句上加上
enable-static
設定為靜態。
總結:關於
madplayer
mad is a high-quality mpeg audio decoder
,支援mpeg-1,mpeg-2, all three audio layers— layer i, layer ii, and layer iii (i.e. ***),
但是,由於其強大的功能,帶來的是占用較大資源。另外,基於
arm7tfmi
的音訊處理器(
ge9008
)是否有足夠快速強大的運算能力也是個問題。 .
madplay編譯移植個人記錄
x86機器 pc端編譯 madplay 直接用 gcc,執行於開發板的要用 arm linux gcc mkdir madplay 將檔案解壓到 madplay中 先安裝zlib 1.1.4 mkdir target libid3tag 要用到zlib 生成的庫 cd src zlib 1.1.4 ...
原 移植madplay到arm linux
移植 madplay 需要如下檔案 madplay 0.15.2b.tar.gz,libmad 0.15.1b.tar.gz,libid3tag 0.15.1b.tar.gz 和 編譯方法如下 zlib configure prefix home madplay allokhere 修改makefi...
OpenSSH交叉編譯和移植
一 openssl交叉編譯編譯 2 解壓 tar xvzf openssl 1.0.1h.tar.gz 3 進入解壓後的目錄,然後再建立輸出目錄 make install是安裝在該目錄 如mkdir outdir 4 配置 config no asm prefix home testdir open...