编译android版本pjsip

测试的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


【原文:http://yeyingxian.blog.163.com/blog/static/3447124201362583022597/】

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值