您的位置:首页 > 移动开发 > Android开发

编译android版本pjsip

2013-11-08 10:24 281 查看
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: