交叉編譯Linphone 1 2 0

2021-04-14 03:01:27 字數 3677 閱讀 9577

linphone on arm-linux (cross-compiling on host for target architecture)

1) linphone-1.2.0

2) libosip2-2.2.2

3) libogg-1.1.0

4) speex-1.1.11.1

5) ortp ( linphone

其他工具見 :http://telestarnotes.blogspot.com/2004_12_01_archive.html

a) 編譯環境設定:

arm交叉編譯工具::

直接解壓到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-a** --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 語句使編譯不能生成靜態庫檔案,即不能使庫和可執行檔案和為一體,而生成了另外單獨的庫支援檔案。如果需要把庫和可執行檔案合成乙個檔案,那麼不要使用這項。

在sch中相應的目錄下輸入./linphonec,即可以執行程式

如不能執行,則缺少庫支援,把剛生成的相應的*.so.*檔案複製到開發板的lib目錄下即可。

本人用的是magic linux,核心2.6.15,交叉編譯工具

arm-linux-gcc-3.4.1

design bymyth wu

編譯 交叉編譯

交叉編譯含義 是指在乙個平台上生成另乙個平台上的可執行 同乙個體系結構可以執行不同的作業系統,同樣乙個作業系統也可以在不同的體系結構上執行 例 常說的x86 linux平台 指inter x86體系結構及linux for x86作業系統 x86 winnt平台 指inter x86體系結構及win...

交叉編譯(2) 交叉編譯鏈

什麼是交叉編譯鏈 明白了什麼是交叉編譯,那我們來看看什麼是交叉編譯鏈。首先編譯過程是按照不同的子功能,依照先後順序組成的乙個複雜的流程,如下圖 那麼編譯過程包括了預處理 編譯 彙編 鏈結等功能。既然有不同的子功能,那每個子功能都是乙個單獨的工具來實現,它們合在一起形成了乙個完整的工具集。同時編譯過程...

交叉編譯 Go 交叉編譯 跨平台編譯

golang 支援交叉編譯,在乙個平台上生成另乙個平台的可執行程式 cgo enabled 0 goos linux goarch amd64 go build main.go cgo enabled 0 goos windows goarch amd64 go build main.go cgo ...