speex-linux下音頻處理__linux

來源:互聯網
上載者:User

交叉編譯linphone [osip2 ,ogg, speex, ortp(VOIP開源軟體)(轉)] 2008-10-22 16:40

LINPHONE ON ARM-LINUX (cross-compiling on host for target architecture)
編譯linphone 需要庫的支援,這其中就需要osip2,ogg,speex,ortp庫的支援,這幾種庫分別支援各種通訊協議,如osip2支援的為sip協議,ortp支援的為rtp協議(即rtp協議的軟體版)。

 其中speex庫另需要ogg庫的支援,在編譯過程中可以看到。

廢話少說,下面開始交叉編譯:


軟體包: (在網上下載如下軟體包)
1) linphone-1.2.0
2) libosip2-2.2.2
3) libogg-1.1.0
4) speex-1.1.11.1
5) oRTP ( linphone 包中內建,如果沒有可以下載ortp-0.7.0版本)
到網站下載 http://www.gnu.org/software/
其他工具見:http://telestarnotes.blogspot.com/2004_12_01_archive.html

A) 編譯環境設定:
arm交叉編譯工具::
 下載 arm-linux-gcc-3.4.1.tar.bz2 
 直接解壓到usr/local 中,或連結到/usr/local中
 1)把arm-linux-gcc-3.4.1.tar.bz2 檔案copy到usr/local 下,右擊解壓即可

 2)任意目錄下解壓arm-linux-gcc-3.4.1.tar.bz2
 #tar -xvjf arm-linux-gcc-3.4.1.tar.bz2 //解壓
 #export PATH=$PATH:/root/usr/local/arm/3.4.1/bin //環境變數設定:路徑,連結,庫
 #export LD=/root/usr/local/arm/3.4.1/bin/arm-linux-ld
 #export LDFLAGS=-L/root/usr/local/arm/3.4.1/arm-linux/lib



B) 交叉編譯 libosip2-2.2.2
 #cd libosip2-2.2.2 //到解壓後的 libosip 目錄下,以下同
 #./configure --prefix=/root/armbuild -host=arm-linux --target=arm-linux --disable-static //設定檔
 #make //編譯
 #make install //安裝

// --prefix=/... :指定檔案編譯安裝目錄
//--host=..... :指定編譯工具,預設的為gcc,此處為arm-linux(編譯到arm上用的)
//--disable-static :禁止靜態庫(.a)連結,編譯產生動態庫(.so)

C) 交叉編譯 libogg-1.1.0
 #cd ../libogg-1.1.0
 #./configure --prefix=/root/armbuild --host=arm-linux --target=arm-linux --disable-static --enable-fixed-point
 #make
 #make install

D) 交叉編譯speex-1.1.11.1
 #cd ../speex-1.1.11.1
 #./configure --prefix=/root/armbuild --host=arm-linux --target=arm-linux --disable-static --enable-fixed-point --enable-arm-asm --with-ogg=/root/armbuild --with-ogg-libraries=/roo/armbuild/lib --with-ogg-headers=/root/armbuild/include/ogg
//要把/root/armbuild/lib 下的產生的ogg相應的庫copy到交叉編譯工具/usr/local/arm-linux/lib 下面,speex的編譯需要ogg庫的支援。
 #make
 #make install
//--with-ogg : 指定ogg產生的庫的目錄
// --with-ogg-libraries : ogg庫,若沒有,把產生的檔案copy目錄下面
//--with-ogg-headers :指定ogg標頭檔

E) 將libspeex編譯成功的庫檔案copy到編譯工具下的庫中
 #cp /root/armbuild/usr/lib/libspeex.so.2.0.0
/root/usr/local/arm/3.4.1/arm-linux/lib

 #cd /root/usr/local/arm/3.4.1/arm-linux/lib //建立連結
 #ln -s libspeex.so.2.0.0 libspeex.so
 #ln -s libspeex.so.2.0.0 libspeex.so.2
//以上的 步驟 E),可以直接手動把libspeex.so.2.0.0 , libspeex.so, libspeex.so.2三個檔案複製到加查編譯工具下的庫(lib)目錄下即可

F) 交叉編譯 linphone-1.2.0:
 在編譯linphone之前先將ortp複製到 linphone-1.2.0目錄下
 #cd /root/arm/linphone-1.2.0
 #cd oRTP
 ##./configure --prefix=/root/armbuild --host=arm-linux --target=arm-linux --disable-static --enable-fixed-point --disable-glib
//需要加上 --disable-glib(禁止庫),否則會應為缺少gthread 庫而無法編譯。
 #make
 #make install

G)將產生的庫檔案及連結複製到交叉編譯工具的庫中(同步驟E)
 ##cp /root/armbuild/usr/lib/libortp.so.2.0.0
/root/usr/local/arm/3.4.1/arm-linux/lib

 #cd /root/usr/local/arm/3.4.1/arm-linux/lib
 #ln -s libortp.so.2.0.0 libortp.so.2
 #ln -s libortp.so.2.0.0 libortp.so

以此,就可以在沒有圖形介面(GUI)支援情況下編譯linphone

H) #cd /root/arm/linphone-1.2.0
 #./configure --prefix=/root/armbuild --host=arm-linux --target=arm-linux --disable-static --disable-glib --enable-gnome_ui=no --disable-manual
--enable-ipv6 --enable-alsa --with-osip=/root/armbuild --with-speex=/root/armbuild
 #make
 #make install
//--enable-alsa :使能alsa語音編解碼方式,語音傳輸的另種方式為oss
//--enable-ipv6 :使能ipv6

以上的--disable-static 語句使編譯不能產生靜態庫檔案,即不能使庫和可執行檔和為一體,而產生了另外單獨的庫支援檔案。如果需要把庫和可執行檔合成一個檔案,那麼不要使用這項。

就此編譯完畢,在/root/armbuild/bin 檔案中就可以找到可執行檔linphonec,把改檔案及相應的庫下載到開發板中,
在sch中相應的目錄下輸入./linphonec,即可以運行程式
如不能運行,則缺少庫支援,把剛產生的相應的 *.so.*檔案複製到開發板的lib目錄下即可。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.