使用Mac 10.14.3系统
linphone编译资料很多,但是针对特定版本完整流程不是特别清楚,每次使用总是出问题,这次针对当前最新版本linphone-sdk 4.2版本!!!本文仅指导成功编译linphone对使用没有探究!!
1、下载
linphone最新版本把各个端(Android、iOS、desktop)和SDK做了分离,即所有的端公用的同一个SDK项目,下载地址:
git clone https://gitlab.linphone.org/BC/public/linphone-sdk.git --recursive
同步子模块(不管执行多少次都没有什么样)
git submodule sync && git submodule update --init --recursive
开始编译,止步下载,80%的失败可能都是来源于下载,所以本人的下载经历必须记录一下,由于没有使用VPN,所以下载特别慢,重试基本没有成功过,所以使用了如下笨办法:
第一种:手动下载,也是本次成功的方式
安装下载工具free down manager(不是广告,真的比迅雷好用,没有限速、广告,完全免费)
git默认有个很好的特点不会断点续传(也可配置实现),只要文件夹为空就去对应的地址copy地址,添加下载队列中,如下图
大概有40个需要单独下载项,差不多要花费1天时间整理,有的也会失败,多试几次。
第二种:借助gitee.com导入现有项目功能,导入完会自动后台同步,省去等待下载时间,操作如下:
由于码云每天限定最多导入20个,所以使用此方法最少需要2天才能下载完所有子模块,但是优势突出,可以自动同步所有git更新,本人没有等2天,所以没有使用此方法。
说了这么多还是费劲,奉献一下本人编译通过的完整源码包https://pan.baidu.com/s/1XZgirstuC6TbFPzUOYQikw,由于是分开下载的,所以不能git同步了!
2、编译,打开Readme.md文档,按步骤来
安装工具
- cmake >= 3.6
- python = 2.7(python 3.7 if C# wrapper generation is disabled)
- pip
- yasm
- nasm
- doxygen
- Pystache(use `pip install pystache`)
- six(use `pip install six`)
除此之外还需要安装pkg-config,编译的时候第一次懵逼就是因为没有安装它;brew install pkg-config,不能添加sudo,最新版的系统不允许啊
编译:
1、创建目录,并进入
mkdir build_iphone && cd build_iphone
2、配置
cmake .. -DLINPHONESDK_PLATFORM=IOS
多个配置
cmake .. -DCMAKE_BUILD_TYPE=RelWithDebInfo -DLINPHONESDK_PLATFORM=IOS
3、编译
cmake --build .
如果没有问题,等着刷屏成功就OK了,然而怎么可能这么顺利,遇到问题请往下看:
3、编译遇到的问题
问题1:找不到pkg-config
安装brew install pkg-config,这里不用sudo
问题2:unknown type name 'mbedtls_x509_crt';等相关问题
unknown type name 'mbedtls_x509_crt';did you mean 'mbedtls_x509_buf'?
mbedtls版本不对,自己找了一个分支下载,编译通过,分支地址:https://codeload.github.com/ARMmbed/mbedtls/zip/mbedtls-2.16
问题3:
No SOURCES given to target: mswebrtc
重新下载mswebrtc,注意完整目录结构mswebrtc/webrtc/webrtc/ ,目录有2级webrtc,直接下载的webrtc内容是空的,所以要重新下载
由于编译过程,遇到问题没有记录,所以原有描述不全,可以参考关键字解决