IOS PJSIP源码编译

2 篇文章 0 订阅
0 篇文章 0 订阅

源码下载地址: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

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
编译PJSIP Android版本,你需要按照以下步骤进行操作: 1. 首先,你需要设置你的编译环境。根据引用和引用,你需要安装Ubuntu 14.04和Android NDK(如android-ndk-r9d-linux-x86_64或android-ndk-r13b)。确保你已经安装了SWIG 2.0.5以上的版本。 2. 接下来,你需要下载PJSIP源代码。根据引用,你可以从官方网站上下载最新版本的源代码。解压缩源代码文件。 3. 修改配置文件。根据引用和引用,你需要在配置文件(config_site.h)中添加一些内容,例如#define PJ_CONFIG_ANDROID 1,如果你需要视频功能,还需要添加#define PJMEDIA_HAS_VIDEO 1。 4. 设置NDK环境变量。根据引用和引用,你需要设置ANDROID_NDK_ROOT环境变量,指向Android NDK的安装路径。 5. 配置PJSIP。根据引用,你可以运行./configure-android命令进行配置。如果你需要视频功能,可以使用./configure-android --with-openh264=/path/to/openh264进行配置,其中/path/to/openh264是你编译openh264成功后生成的androidlib目录的路径。 6. 编译PJSIP。根据引用和引用,运行make dep && make clean && make命令进行编译。静态库和动态库将会在编译完成后生成。 7. 编译Java接口文件。根据引用,进入pjsip-apps/src/swig目录,运行make命令编译Java接口文件。 8. 最后,你可以使用生成的libpjsua2.so和相关的Java文件进行apk开发。根据引用,libpjsua2.so将会被生成在pjsip-apps/src/swig/java/android/app/src/main/jniLibs目录下,Java文件将会生成在pjsip-apps/src/swig/java/android/app/src/main目录下。 请注意,编译过程可能会因为不同环境和版本的差异而有所不同,如果遇到问题,可以参考官方文档或社区的帮助资源。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [pjsip for Android的编译](https://blog.csdn.net/u012247418/article/details/80161658)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [Android 编译PjSip](https://blog.csdn.net/ou_yb2006/article/details/89354643)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [PJSIP-Android-Compilation:PJSIP-Android平台编译后的Hello World](https://download.csdn.net/download/weixin_42138139/19728536)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值