首先接到这一个项目,说是要用mediastreamer2做一个网络电话。之前也是从来没有接触过。于是首先开始在百度中搜索一下需要哪些东西,以及那些步骤。最后大致了解了一下,做这个项目最终要的就是需要移植好多的库,每一个库都需要配置,最后在交叉编译好动态库,然后在执行mediastreamer2的时候去调用这些动态库和头文件就OK了。
1、首先meidastream2是基于ortp库的,那么首先就是下载源码,交叉编译。
交叉编译ortp
下载源码:http://savannah.c3sl.ufpr.br/linphone/ortp/sources/?C=S;O=A
我使用0.18.0版本 ortp-0.18.0.tar.gz
然后通过winshare(Windows和Linux的通信)把下载好的库文件拷贝到Linux下,
然后解压 tar zxvf ortp-0.18.0.tar.gz 注意这个时候可能会发生错误,是没有权限的问题,那么就在命令行前边加上sudo
然后配置
把下边这三行写成一个脚本 vim **.sh
./configure CC=arm-linux-gcc --host=arm-linux --target=arm-linux --prefix=/home/protocol_stack/install/
make
make install
然后用chmod 777 **.sh
执行脚本./**.sh
这样子就完成了配置,编译,安装。(安装目录为/home/protocol_stack/install/,也就是最后生成的头文件,可执行文件,库文件都会在这个目录下)
2、因为项目是要用到SIP协议的,所以我们还需要移植sip的库
osip2和eXosip2协议,这两个协议对应两个库,osip是简单的osip协议,但是因为API少等一系列原因,增加了eXosip2对osip2的补充。
交叉编译osip2
下载源码:http://ftp.gnu.org/gnu/osip/
我使用的版本是3.6.0 libosip2-3.6.0.tar.gz
然后通过winshare(Windows和Linux的通信)把下载好的库文件拷贝到Linux下,
然后解压 tar zxvf libosip2-3.6.0.tar.gz 注意这个时候可能会发生错误,是没有权限的问题,那么就在命令行前边加上sudo
然后配置
把下边这三行写成一个脚本 vim **.sh
./configure --host=arm-linux --target=arm-linux --prefix=/home/protocol_stack/install/
make
make install
然后用chmod 777 **.sh
执行脚本./**.sh
交叉编译eXosip2
下载源码:http://ftp.gnu.org/gnu/osip/
我使用的版本是3.6.0 libeXosip2-3.6.0.tar.gz
然后通过winshare(Windows和Linux的通信)把下载好的库文件拷贝到Linux下,
然后解压 tar zxvf libeXosip2-3.6.0.tar.gz 注意这个时候可能会发生错误,是没有权限的问题,那么就在命令行前边加上sudo
然后配置
把下边这三行写成一个脚本 vim **.sh
./configure --host=arm-linux --target=arm-linux --prefix=/home/protocol_stack/install/ PKG_CONFIG_PATH=/home/protocol_stack/install/lib/pkgconfig
make
make install
然后用chmod 777 **.sh
执行脚本./**.sh
接下来可以编译mediastreamer2了,不过ms2,依赖好多库:ogg、speex、pulseaudio。而pulseaudio又依赖许多库:alsa、json、libtool。
3、交叉编译ogg
下载源码:http://xiph.org/downloads/
我使用1.3.1版本 libogg-1.3.3.tar.gz
然后通过winshare(Windows和Linux的通信)把下载好的库文件拷贝到Linux下,
然后解压 tar zxvf libogg-1.3.3.tar.gz 注意这个时候可能会发生错误,是没有权限的问题,那么就在命令行前边加上sudo
然后配置
把下边这三行写成一个脚本 vim **.sh
./c
1