madplay移植 交叉編譯

2021-05-22 12:47:50 字數 3665 閱讀 2833

移植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...