WebRTC研究 (一) 編譯原始碼

孔雨露發表於2020-04-06

@[TOC](WebRTC研究 (一) 編譯原始碼)

1. WebRTC 原始碼編譯

1.1 IOS平臺編譯

1.1.1 WebRTC iOS framework 編譯

  1. 安裝 depot_tools
git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
複製程式碼

把 depot_tools 加入環境變數

export PATH=`pwd`/depot_tools:"$PATH"
複製程式碼
  1. clone 原始碼 建立一個資料夾用來存放 WebRTC 原始碼,比如 mkdir ~/webrtc, 進入剛才建立的資料夾執行
fetch --nohooks webrtc_ios
gclient sync
複製程式碼

然後就是漫長的等待中... 完全 sync 完成後會在 webrtc 目錄下生成一個 src 目錄,進入 src 目錄會看到類似 chromium.googlesource.com/external/we… 這個樣的目錄,只不過多了 third-party 的一些依賴檔案, branch 57 之後 sync 很快哦

  1. 編譯 framework 執行命令 gclient runhooks 進入 src 目錄,然後執行
./tools_webrtc/ios/build_ios_libs.py
複製程式碼

就可以編譯出 framework 檔案了。 可以通過 ./tools_webrtc/ios/build_ios_libs.py --help 檢視編譯選項 預設會編譯出全部架構的 ['arm64', 'arm', 'x64', 'x86'] 的 framework 檔案,如果想要編譯成靜態庫也可以加上 -b static_only,如果只想編譯 ARM 的架構可以 ./tools_webrtc/ios/build_ios_libs.py --arch {'arm64','arm'} (老版本的目錄為 tools-webrtc)

  1. 使用 Xcode 檢視和編譯 WebRTC 原始碼 WebRTC 不支援 Xcode 原生編譯,用 Xcode 編譯也是呼叫的 ninja 去編譯 先生成 workspace 檔案,還是進入上面提到的 src 的目錄
gn gen out/ios --args='target_os="ios" target_cpu="arm64" is_component_build=false' --ide=xcode
複製程式碼

開啟工程檔案,就可以編譯和檢視原始碼了

open -a Xcode.app out/ios/all.xcworkspace
複製程式碼
  1. 程式碼更新 以後更新 webrtc 程式碼只需要進入 src 目錄 git pull 就行, 定期的更新依賴,使用
gclient sync
複製程式碼

相關文章