駕馭開源庫WebRTC
第四章-編譯Mac&iOS版
作者:adam鳴謝:老張
日期:2015-4-6
版本:1.0.0
歡迎轉載,有問題反饋Q:2780113541,盡量完善系列教程。更新地址:https://github.com/wpc320/webrtc_doc.git
depot_tools代理設定參考老張《史上最牛逼的牆內下載webrtc代碼說明_20150401》
0、官方源碼svn自2015-3-24已遷至Googlegit
一些使用svn地址的教程已不適用或需改進
1、部署http(s)轉sock5代理,具體參考第一章
Shadowsocks:Proxy 位址 127.0.0.1:1080
Privoxy:Proxy 位址 127.0.0.1:8118
2、編譯環境準備
MacOS X 10.9.5主機或虛擬機器一台,安裝Xcode6
本人工作區為$HOME,保證剩餘空間有10G以上
3、下載工具準備
cd$HOME
gitconfig --global http.proxy http://127.0.0.1:8118
gitconfig --global https.proxy https://127.0.0.1:8118
gitclone https://chromium.googlesource.com/chromium/tools/depot_tools.git
4、設定下載工具路徑至環境變數
echo'export PATH=$HOME/depot_tools/:$PATH' >> ~/.bash_profile
source~/.bash_profile
5、下載工具代理設定以及下載webrtc
vi$HOME/depot_tools/http_proxy.boto,內容如下:
[Boto]
proxy= 127.0.0.1
proxy_port= 8118
設定環境變數,如新開終端則需重新設定
exporthttp_proxy=http://127.0.0.1:8118
exporthttps_proxy=https://127.0.0.1:8118
gitconfig --global http.proxy http://127.0.0.1:8118
gitconfig --global https.proxy https://127.0.0.1:8118
exportPATH=$HOME/depot_tools/:$PATH
exportNO_AUTH_BOTO_CONFIG=$HOME/depot_tools/http_proxy.boto
mkdir$HOME/webrtc_ios
cd$HOME/webrtc_ios
exportGYP_DEFINES="OS=ios"
首次下載輸入下載命令:
fetchwebrtc_ios
等待幾個G下載完成,最好沒報錯。
報錯說明網路或上邊代理設定存在問題,排除問題然後執行如下命令:
下載代碼:
gitpull或gitfetch
下載依賴項產生編譯檔案:
gclientsync
6、編譯webrtc
以iOS平台樣本,設定環境變數:
exportGYP_CROSSCOMPILE=1
exportGYP_DEFINES="OS=ios target_arch=arm arm_version=7"
exportGYP_GENERATOR_FLAGS="output_dir=out_ios"
exportGYP_GENERATORS=ninja
執行:
cd$HOME/webrtc_ios/src
webrtc/build/gyp_webrtc
等待工程檔案產生完畢……
編譯:
ninja-C out_ios/Debug-iphoneos
其他平台編譯參考:http://www.webrtc.org/native-code/ios
---------------------------進階-----------------------------------
1、代碼和依賴項更新
cd$HOME/webrtc_ios
exportGYP_DEFINES="$GYP_DEFINES OS=ios"
同步下載源碼:
gitpull或gitfetch
同步下載依賴項並根據GYP_GENERATORS的設定產生編譯檔案:
gclientsync
只同步下載依賴項不產生編譯檔案:
gclientsync --nohooks
只根據GYP_GENERATORS的設定產生編譯檔案:
gclientrunhooks
2、如果python庫報錯,更換python新版本
_bsddb啥的,那是因為mac內建的python庫有問題
手動更新python,我用的是2.7.9 pkg,10.6+的系統可以裝。
https://www.python.org/ftp/python/2.7.9/python-2.7.9-macosx10.6.pkg
安裝好,然後執行
sudo rm /usr/bin/pydoc
sudo rm /usr/bin/python
sudo rm /usr/bin/pythonw
sudo rm /usr/bin/python-config
至此舊python串連符刪除完畢
新開終端輸入python,顯示2.7.9即為OK,CTRL+D退出。
3、使用xcode編譯
新版webrtc在OSX下使用Xcode調ninja來編譯
新開終端,輸入:
cd$HOME/webrtc_ios/src
export GYP_GENERATOR_FLAGS="xcode_project_version=3.2xcode_ninja_target_pattern=All_iOS xcode_ninja_executable_target_pattern=AppRTCDemo|libjingle_peerconnection_unittest|libjingle_peerconnection_objc_testoutput_dir=out_ios"
exportGYP_GENERATORS="ninja,xcode-ninja"
webrtc/build/gyp_webrtc
然後可以在src目錄中找到all.ninja.xcodeproj開啟編譯即可。
另外src下還有另外兩個工程,一個是作為索引sources_for_indexing.xcodeproj,一個是all.ninja.xcworkspace,xcode開啟就有warning和error,以後再說吧,有知道解決辦法的朋友可以告訴我。
更多裝置請參考:
http://www.webrtc.org/native-code/ios