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文件中添加一下代码
3、改为arm64架构,默认是armv7的
4.设置最小支持版本
5.如果需要支持视频需要去下载openh264 1.6的源码进行编译(直接下载.a文件是不行的)
下载源码后cd到源码目录 执行下面语句进行编译
make OS=”ios” ARCH=arm64 install
编译成功后/静态库文件默认在/usr/local/lib下面
6.配置PSSIP编译选项
7.编译
如果不出意外编译是没问题的,就可以打开 /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
官方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
相关文章推荐
- Qt 源码编译(iOS and Android)
- Cocos2D-HTML5 MoonWarriors游戏Android编译指南(另附iOS编译指南和游戏源码)
- webrtc ios client 源码拉取和编译
- Cocos2D-HTML5 MoonWarriors游戏Android编译指南(另附iOS编译指南和游戏源码)
- iOS之 PJSIP静态库编译(三)
- 官网 webrtc_IOS 源码下载和编译
- IOS 之 PJSIP 笔记(一) 编译多平台支持的静态库
- iOS之 PJSIP静态库编译(一)
- pjsip使用最新源码编译 for android
- pjsip使用最新源码编译 for android
- iOS 的 framework 和 ipa 文件可以反编译出源码吗?
- iOS之 PJSIP静态库编译(二)
- iOS之PJSIP的编译与简单使用
- 在iOS6机子上运行 React-Native Demo, 自己编译 JavaScriptCore 源码,支持 iOS5.1 ,iOS 6
- iOS 终端使用Clang编译 重写观察Runtime源码
- 关于ios平台编译libpjsip的注意事项
- pjsip使用最新源码编译 for android
- iOS 之 PJSIP 笔记(一) 编译多平台支持的静态库