使用Mac 10.14.3系統(tǒng)
linphone編譯資料很多,但是針對(duì)特定版本完整流程不是特別清楚,每次使用總是出問(wèn)題,這次針對(duì)當(dāng)前最新版本linphone-sdk 4.2版本?。?!本文僅指導(dǎo)成功編譯linphone對(duì)使用沒(méi)有探究?。?/p>
1、下載
linphone最新版本把各個(gè)端(Android、iOS、desktop)和SDK做了分離,即所有的端公用的同一個(gè)SDK項(xiàng)目,下載地址:
git clone https://gitlab.linphone.org/BC/public/linphone-sdk.git --recursive
同步子模塊(不管執(zhí)行多少次都沒(méi)有什么樣)
git submodule sync && git submodule update --init --recursive
開始編譯,止步下載,80%的失敗可能都是來(lái)源于下載,所以本人的下載經(jīng)歷必須記錄一下,由于沒(méi)有使用VPN,所以下載特別慢,重試基本沒(méi)有成功過(guò),所以使用了如下笨辦法:
第一種:手動(dòng)下載,也是本次成功的方式
安裝下載工具free down manager(不是廣告,真的比迅雷好用,沒(méi)有限速、廣告,完全免費(fèi))
git默認(rèn)有個(gè)很好的特點(diǎn)不會(huì)斷點(diǎn)續(xù)傳(也可配置實(shí)現(xiàn)),只要文件夾為空就去對(duì)應(yīng)的地址copy地址,添加下載隊(duì)列中,如下圖

大概有40個(gè)需要單獨(dú)下載項(xiàng),差不多要花費(fèi)1天時(shí)間整理,有的也會(huì)失敗,多試幾次。
第二種:借助gitee.com導(dǎo)入現(xiàn)有項(xiàng)目功能,導(dǎo)入完會(huì)自動(dòng)后臺(tái)同步,省去等待下載時(shí)間,操作如下:

由于碼云每天限定最多導(dǎo)入20個(gè),所以使用此方法最少需要2天才能下載完所有子模塊,但是優(yōu)勢(shì)突出,可以自動(dòng)同步所有g(shù)it更新,本人沒(méi)有等2天,所以沒(méi)有使用此方法。
說(shuō)了這么多還是費(fèi)勁,奉獻(xiàn)一下本人編譯通過(guò)的完整源碼包https://pan.baidu.com/s/1XZgirstuC6TbFPzUOYQikw,由于是分開下載的,所以不能git同步了!
2、編譯,打開Readme.md文檔,按步驟來(lái)
安裝工具
- 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,編譯的時(shí)候第一次懵逼就是因?yàn)闆](méi)有安裝它;brew install pkg-config,不能添加sudo,最新版的系統(tǒng)不允許啊
編譯:
1、創(chuàng)建目錄,并進(jìn)入
mkdir build_iphone && cd build_iphone
2、配置
cmake .. -DLINPHONESDK_PLATFORM=IOS
多個(gè)配置
cmake .. -DCMAKE_BUILD_TYPE=RelWithDebInfo -DLINPHONESDK_PLATFORM=IOS
3、編譯
cmake --build .
如果沒(méi)有問(wèn)題,等著刷屏成功就OK了,然而怎么可能這么順利,遇到問(wèn)題請(qǐng)往下看:
3、編譯遇到的問(wèn)題
問(wèn)題1:找不到pkg-config
安裝brew install pkg-config,這里不用sudo
問(wèn)題2:unknown type name 'mbedtls_x509_crt';等相關(guān)問(wèn)題
unknown type name 'mbedtls_x509_crt';did you mean 'mbedtls_x509_buf'?
mbedtls版本不對(duì),自己找了一個(gè)分支下載,編譯通過(guò),分支地址:https://codeload.github.com/ARMmbed/mbedtls/zip/mbedtls-2.16
問(wèn)題3:
No SOURCES given to target: mswebrtc
重新下載mswebrtc,注意完整目錄結(jié)構(gòu)mswebrtc/webrtc/webrtc/? ,目錄有2級(jí)webrtc,直接下載的webrtc內(nèi)容是空的,所以要重新下載
由于編譯過(guò)程,遇到問(wèn)題沒(méi)有記錄,所以原有描述不全,可以參考關(guān)鍵字解決