cross_compile linphone for arm

来源:互联网 发布:android编程200例 pdf 编辑:程序博客网 时间:2024/06/01 08:45

点击打开链接根据项目需求,移植一个只有语音功能的linphone(无需界面与视频),折腾了很多天,经过不断的google,终于被我找到了

下面是我找到的原文:

原文链接:http://www.cnblogs.com/xinyuyuanm/archive/2013/05/31/3111276.html

    使用arm-linux-gcc4.5.1,这个编译器是友善之臂提供的,linux版本3.0.8

    linphone移植需要依附其他库:

    libogg-1.3.0.tar.gz http://freecode.com/projects/libogg

    speex-1.2rc1.tar.gz http://www.speex.org/downloads/

    libosip2-3.3.0.tar.gz http://ftp.gnu.org/gnu/osip/

    libeXosip2-3.3.0.tar.gz http://download.savannah.gnu.org/releases/exosip/ (与libosip2使用同一版本)

    readline-6.2.tar.gz(如未加此库,会涌现linphonecsh无法注册到服务器的问题)

    linphone-3.2.0.tar.gz http://download.savannah.gnu.org/releases/linphone/

 

    设置好交叉编译器环境变量

    创建目录 /home/linphone/build,/home/linphone/arm_target,/home/linphone/sources

    将全部安装包放入/home/linphone/sources,并解压到该文件夹下

    tar -zxvf libogg-1.3.0.tar.gz

    tar -zxvf readline-6.2.tar.gz

    tar -zxvf speex-1.2rc1.tar.gz

    tar -zxvf libosip2-3.3.0.tar.gz

    tar -zxvf libeXosip2-3.3.0.tar.gz

    tar -zxvf linphone-3.2.0.tar.gz

 

    交叉编译libogg

    mkdir /home/linphone/build/libogg

    cd /home/linphone/build/libogg

    ../../sources/libogg-1.3.0/configure --prefix=/home/linphone/arm_target  CC=arm-linux-gcc --host=arm-linux--enable-static --disable-shared

    make

    make install(一般情况下没有错误产生)

 

    交叉编译speex

    mkdir /home/linphone/build/speex

    cd /home/linphone/build/speex

    ../../sources/speex-1.2rc1/configure --prefix=/home/linphone/arm_target CC=arm-linux-gcc--host=arm-linux --with-ogg=/home/linphone/arm_target/ --enable-static --disable-shared

    make

    make install (一般情况下没有错误产生)

 

    交叉编译libosip2

    mkdir /home/linphone/build/libosip2

    cd /home/linphone/build/libosip2

    ../../sources/libosip2-3.3.0/configure --prefix=/home/linphone/arm_target CC=arm-linux-gcc--host=arm-linux --enable-shared --disable-static

make (一般情况下没有错误产生)

    make install

 

    交叉编译libeXosip2

    mkdir /home/linphone/build/libeXosip2

    cd /home/linphone/build/libeXosip2

    ../../sources/libeXosip2-3.3.0/configure --prefix=/home/linphone/arm_target CC=arm-linux-gcc --host=arm-linux --enable-shared --disable-static PKG_CONFIG_PATH=/home/linphone/arm_target/lib/pkgconfig/

    make

    make install (libeXosip2版本需要与libosip2的版本始终,否则编译不通过)

 

    交叉编译readline (一般情况下没有错误产生)

    mkdir /home/linphone/build/readline

    cd /home/linphone/build/readline

    ../../sources/readline-6.2/configure --prefix=/home/linphone/arm_target --prefix=/home/install/linphone --host=arm-linux --with-gnu-ld --disable-static

    make

    make install

    

    交叉编译linphone

    mkdir /home/linphone/build/linphone

    cd /home/linphone/build/linphone

    ../../sources/linphone-3.2.0/configure --prefix=/home/linphone/arm_target --host=arm-linux --with-gnu-ld --disable-static  --enable-alsa=yes --disable-glib --with-osip=/home/linphone/arm_target --with-speex=/home/linphone/arm_target SPEEX_CFLAGS="-I/home/linphone/arm_target/include"  SPEEX_LIBS="-L/home/linphone/arm_target/lib -lspeex -lspeexdsp" OSIP_CFLAGS="-I/home/linphone/arm_target/include"  OSIP_LIBS="-L/home/linphone/arm_target/lib -leXosip2 -losipparser2" --disable-video --disable-gtk_ui PKG_CONFIG_PATH=/home/linphone/arm_target/lib/pkgconfig/ READLINE_CFLAGS="-I/home/linphone/arm_target/include" READLINE_LIBS="-L/home/linphone/arm_target/lib" 

CC = arm-linux-gcc (这是我添加的,不知道作者是不是忘了加还是怎样)

    make

    make install

    注意:之前使用libeXosip2-4.0.0,编译linphone会报一堆错误,武断该用3.3.0版本,问题就没涌现了,编译到后面涌现config.h中的宏定义重复定义,只需在该文件中把响应的宏定义注释就处理了。

    将/home/linphone/arm_target下的linphonec linphonecsh拷贝到开发板文件系统的/usr/local/bin,并运行

    缺乏库则从/home/linphone/arm_target/lib拷贝,以此类推

我需要移植的库有:(我的交叉编译链安装目录是 /usr/local/4.5.1)

/usr/local/4.5.1/arm-none-linux-gnueabi/sys-root/usr/lib

libncurses.so.5
libasound.so.2
libssl.so.1.0.0
libcrypto.so.1.0.0
libz.so.1


/usr/local/4.5.1/arm-none-linux-gnueabi/sys-root/lib
libstdc++.so.6

 

    在开发板测试

 

    linphonecsh init

    linphonecsh register --host IP --username user --password passwd

    linphonecsh generic 'autoanswer enable'

    linphonecsh generic 'soundcard use 1'

 

    至此,此版本的linphone已可接听与拨打。