编译android版本pjsip

http://yeyingxian.blog.163.com/blog/static/3447124201362583022597/


编译android版本pjsip  


2013-07-25 20:30:22|  分类: android |字号 订阅
测试的pjsip版本为r4567,ndk版本为r8e,系统为ubuntu 12.04 x64。本来想在cygwin下面搞的,但是cygwin下面死活编不过去,因为cygwin下面运行配置脚本出来的路径都不带盘符,而ndk中的gcc是windows原生程序,不认cygwin的路径规则。只能改到linux下面编译。而且虚拟机中的linux也比cygwin运行速度快多了。




1、修改pjsip的编译配置pjlib\include\pj\config_site.h,写入以下内容


#define PJ_CONFIG_ANDROID 1
#include <pj/config_site_sample.h>




2、如果要编译pjsip的静态库和测试执行程序,进入pjsip的根目录,设置ndk路径,编译


$ export ANDROID_NDK_ROOT=/home/android-ndk-r8e/
$ ./configure-android
$ make dep && make clean && make




PS:如果出现这样的错误,
-bash: ./configure-android: /bin/sh^M: bad interpreter: No such file or directory
是因为代码是从tortoise svn checkout时,变成了windows下面的\r\n回车。要改回unix的回车格式
dos2unix configure-android


如果出现错误
configure-android error: unable to find directory /home/android-ndk-r8e//toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86 in Android NDK
是因为我安装的ndk是64位的版本。要修改configure-android
--  Linux) BUILD_MACHINE="linux-x86";;
++  Linux) BUILD_MACHINE="linux-x86_64";;




3、如果是编译pjsip的动态库,供java层调用,编译完静态库之后,还需要安装swig编译动态库和接口


需要swig 2.0.5以上的版本。ubuntu 12.04自带的swig是2.0.4,不符合要求,需要自行编译安装swig的新版本


$ aptitude install libpcre3-dev
$ tar xzf swig-2.0.10.tar.gz 
$ cd swig-2.0.10/
$ ./configure 
$ make
$ make install


开始编译pjsip


$ cd /path/to/your/pjsip/dir
$ cd pjsip-apps/src/pjsua/android
$ ndk-build




PS:如果出现编译错误 invalid conversion from 'void**' to 'JNIEnv** {aka _JNIEnv**}' ,则是swig的版本低了




参考
http://trac.pjsip.org/repos/wiki/Getting-Started/Android

你可能感兴趣的:(编译android版本pjsip)