linphone在ARM-Linux下的交叉编译

linphone在ARM-Linux下的交叉编译
2010-06-21 17:03
系统:Linuxmint9/fedora13
arm-linux:arm-none-linux-gnueabi 4.3.2 (Sourcery G++ Lite 2008q3-72)

Linphone版本:linphone-3.3.0.tar.gz


Linphone依赖库准备:
libogg-1.2.0.tar.gz

speex-1.2rc1.tar.gz

libosip2-3.3.0.tar.gz

libeXosip2-3.3.0.tar.gz


在fedora上直接编译通过,但是在linuxmint上需要安装intltool,命令:
sudo apt-get install intltool

1) 交叉编译 libosip2-3.3.0
#cd libosip2-3.3.0 //到解压后的 libosip 目录下,以下同
#./configure --prefix=/home/jinshely/projects/linphone/armbuild --host=arm-linux --target=arm-linux --disable-static //配置文件
#make //编译
#make install //安装

// --prefix=/... :指定文件编译安装目录
//--host=..... :指定编译工具,默认的为gcc,此处为arm-linux(编译到arm上用的)
//--disable-static :禁止静态库(.a)链接,编译生成动态库(.so)

2) 交叉编译 libeXosip2-3.3.0
#cd libeXosip2-3.3.0
#./configure --prefix=/home/jinshely/projects/linphone/armbuild/ --host=arm-linux --disable-static --with-osip=/home/jinshely/projects/linphone/armbuild/ PKG_CONFIG_PATH=/home/jinshely/projects/linphone/armbuild/lib/pkgconfig
//配置文件
#make //编译
#make install //安装

3) 交叉编译 libogg-1.2.0
#cd ../libogg-1.2.0
#./configure --prefix=/home/jinshely/projects/linphone/armbuild --host=arm-linux --target=arm-linux --disable-static --enable-fixed-point
#make
#make install

4) 交叉编译speex-1.2rc1
#cd ../speex-1.2rc.1
#./configure --prefix=/home/jinshely/projects/linphone/armbuild --host=arm-linux --target=arm-linux --disable-static --enable-fixed-point --enable-arm-asm --with-ogg=/home/jinshely/projects/linphone/armbuild --with-ogg-libraries=/home/jinshely/projects/linphone/armbuild/lib --with-ogg-headers=/home/jinshely/projects/linphone/armbuild/include/ogg

#make
#make install
//--with-ogg : 指定ogg生成的库的目录
// --with-ogg-libraries : ogg库,若没有,把生成的文件copy目录下面
//--with-ogg-headers :指定ogg头文件

5) 在没有图形界面(GUI)支持情况下交叉编译 linphone-3.3.0:
#cd /root/arm/linphone-3.3.0
#./configure --prefix=/home/jinshely/projects/linphone/armbuild --host=arm-linux --target=arm-linux --disable-static --disable-glib --enable-gnome_ui=no --enable-gtk_ui=no --disable-video --disable-manual --enable-ipv6 --enable-alsa --with-osip=/home/jinshely/projects/linphone/armbuild/ --with-speex=/home/jinshely/projects/linphone/armbuild/ PKG_CONFIG_PATH=/home/jinshely/projects/linphone/armbuild/lib/pkgconfig/
#make
#make install

注: --enable-gtk_ui=no 目的是去除gtk的ui,否则编译过程中会需要gtk+库。
--disable-video 目的是裁剪掉视频功能,否则编译过程会需要ffmeg库。
--with-osip 目的是指明编译过程所需要的osip库的位置。

--enable-alsa :使能alsa语音编解码方式,语音传输的另种方式为oss
--enable-ipv6 :使能ipv6

以上的--disable-static 语句使编译不能生成静态库文件,即不能使库和可执行文件和为一体,而生成了另外单独的库支持文件。如果需要把库和可执行文件合成一个文件,那么不要使用这项。

就此编译完毕,在/armbuild/bin 文件中就可以找到可执行文件linphonec,把文件及相应的库下载到开发板中,如不能运行,则缺少库支持,把刚生成的相应的 *.so.*文件复制到开发板的lib目录下即可。

题外话:
说实话,这个东西还真是麻烦!搞了N久,试过很多前辈大侠的方法才搞定,后面要继续还会有一堆的问题。不过开源的东西就是这个样子,和个人使用的系统环境都有关系,别人的方法可以参考,但是照搬的话,出现问题的可能性很大,还是要自己多尝试,找方向。总之,搞定了编译,还是很开心的

你可能感兴趣的:(技术笔记)