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

IOS PJSIP源码编译

2017-04-22 09:18 871 查看
源码下载地址:http://www.pjsip.org/download.htm

官方iPhone编译指南:

https://trac.pjsip.org/repos/wiki/Getting-Started/iPhone

编译版本2.6

编译步骤

1.创建一个config_site.h文件,放置/XXX/pjproject-2.6/pjlib/include/pj



不要复制XXX/pjproject-2.6/pjsip-apps/src/3rdparty_media_sample/config_site.h文件过去,最后链接文件会报错的。

2.在创建的config_site.h文件中添加一下代码

#define PJ_CONFIG_IPHONE 1
//如果不需要视频,则不用添加以下宏定义
#define PJMEDIA_HAS_VIDEO           1

#include <pj/config_site_sample.h>


3、改为arm64架构,默认是armv7的

export ARCH="-arch arm64"


4.设置最小支持版本

export MIN_IOS="-miphoneos-version-min=8.0"


5.如果需要支持视频需要去下载openh264 1.6的源码进行编译(直接下载.a文件是不行的)

下载源码后cd到源码目录 执行下面语句进行编译

make OS=”ios” ARCH=arm64 install

编译成功后/静态库文件默认在/usr/local/lib下面

6.配置PSSIP编译选项

//cd 到源码顶层文件夹下
$   cd /XXX/pjproject-2.6
//执行 ./configure-iphone 设置openh264库文件
$ ./configure-iphone --with-openh264=/usr/local/


7.编译

//等待配置文件生成后,确保你创建config_site.h文件,就可以进行编译
$  make dep && make clean && make


如果不出意外编译是没问题的,就可以打开 /pjsip-apps/src/pjsua/ios. 下面的工程了。

如果编译失败则可能是因为PJSIP源码 跟/usr/local/lib下面的库起冲突了。解决方法编译时暂时屏蔽掉/usr/local/lib下冲突的库文件、或者头文件,暂时修改他的文件名或者移除,编译成功后记得恢复

8.合并 armv7和arm64架构静态库

编译完成后只有设置架构的文件,需要其他的架构的库文件需要重新设置架构然后继续按照上面的流程执行

都编译完成后,找到对应的库文件进行合并

//合并方法、例如:

//打开终端,进入要合并的库文件目录

$ lipo -arch armv7 libpjsua2-armv7-apple-darwin_ios.a -arch arm64 libpjsua2-arm64-apple-darwin_ios.a -create -output libpjsua2.a

合并完成后查看是否成功,使用lipo -info将会显示对应的支持的版本架构

$ lipo -info libpjsua2.a
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ios PJSIP