webrtc全平台下載編譯步驟詳細說明


1. 安裝depot tools

Windows:

國外下載:https://storage.googleapis.com/chrome-infra/depot_tools.zip
下載完把壓縮包解壓,然后把解壓目錄加入PATH環境變量

Linux(Android)/Mac(IOS):

安裝git
國外:git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
國內:git clone https://source.codeaurora.org/quic/lc/chromium/tools/depot_tools
把depot_tools目錄加入

PATH:export PATH=`pwd`/depot_tools:"$PATH"

2. 安裝依賴軟件

Windows:

  1. 系統locale最好設置成English,就是控制面板里面的Region.
  2. 安裝”Visual Studio 2015 Update 2“,其他版本都不受官方支持。
  3. 操作系統必須是Windows 7 x64及以上版本,x86操作系統都不支持。
  4. 安裝VS2015時必須有下列組件:
    •Visual C++, which will select three sub-categories including MFC
    •Universal Windows Apps Development Tools > Tools
    •Universal Windows Apps Development Tools > Windows 10 SDK (10.0.10586)
  5. 新開個cmd中運行set DEPOT_TOOLS_WIN_TOOLCHAIN=0,之后所以腳本都在這個cmd中運行
  6. 編譯是用ninja而不是VS!

Linux: 看后面
Android:
安裝Java OpenJDK:

$ sudo apt-get install openjdk-7-jdk
$ sudo update-alternatives --config javac
$ sudo update-alternatives --config java
$ sudo update-alternatives --config javaws
$ sudo update-alternatives --config javap
$ sudo update-alternatives --config jar
$ sudo update-alternatives --config jarsigner

Mac(IOS):
安裝最新XCode

3. 源碼下載

先創建目錄

mkdir webrtc-checkout
cd webrtc-checkout

Windows:

fetch --nohooks webrtc
gclient sync

Linux:

export GYP_DEFINES="OS=linux"
fetch --nohooks webrtc_android
gclient sync
./build/install-build-deps.sh

Android:

export GYP_DEFINES="OS=android"
fetch --nohooks webrtc_android
gclient sync
./build/install-build-deps.sh

Mac:

export GYP_DEFINES="OS=mac"
fetch --nohooks webrtc_ios
gclient sync

IOS:

export GYP_DEFINES="OS=ios"
fetch --nohooks webrtc_ios
gclient sync

4. 生成ninja項目文件

Windows/Linux:
方式一:使用gn生成:
生成debug版ninja項目文件:gn gen out/Default
生成release版ninja項目文件:gn gen out/Default --args='is_debug=false'
清空ninja項目文件:gn clean out/Default

方式二:使用gyp生成(已過期的方式,但是目前還可以用)
python webrtc/build/gyp_webrtc.py
Android:
使用gn生成:gn gen out/Default --args='target_os="android" target_cpu="arm"'
生成ARM64版:gn gen out/Default --args='target_os="android" target_cpu="arm64"'
生成32位 x86版:gn gen out/Default --args='target_os="android" target_cpu="x86"'
生成64位 x64版:gn gen out/Default --args='target_os="android" target_cpu="x64"'
Mac:
使用gn生成:gn gen out/Debug-mac --args='target_os="mac" target_cpu="x64" is_component_build=false'
IOS:
生成ARM版:gn gen out/Debug-device-arm32 --args='target_os="ios" target_cpu="arm" is_component_build=false'
生成ARM64版:gn gen out/Debug-device-arm64 --args='target_os="ios" target_cpu="arm64" is_component_build=false'
生成32位模擬器版:gn gen out/Debug-sim32 --args='target_os="ios" target_cpu="x86" is_component_build=false'
生成64位模擬器版:gn gen out/Debug-sim64 --args='target_os="ios" target_cpu="x64" is_component_build=false'

ios編譯

#!/bin/sh
#armv32
gn gen out_ios32 --args='target_os="ios" target_cpu="arm" is_component_build=false' --ide=xcode
ninja -C out_ios32 AppRTCMobile
#armv64
gn gen out_ios64 --args='target_os="ios" target_cpu="arm64" is_component_build=false' --ide=xcode
ninja -C out_ios64 AppRTCMobile

mac編譯

gn gen out/Debug --ide=xcode --args='is_debug=true' --mac_deployment_target=10.10 --rtc_include_tests=true
gn gen out/Release --ide=xcode --args='is_debug=false' --mac_deployment_target=10.10 --rtc_include_tests=true

拷貝

for i in `find /Users/webrtc1128/webrtc-checkout/src/out_ios32 -name "lib*.a"`
do
echo $i
cp $i ./out_ios32/
done
libtool -static -v -o out_ios32/libwebrtc32.a out_ios32/*.a
strip -S -X out_ios32/libwebrtc32.a
for i in `find /Users/webrtc1128/webrtc-checkout/src/out_ios64 -name "lib*.a"`
do
echo $i
cp $i ./out_ios64/
done
libtool -static -v -o out_ios64/libwebrtc64.a out_ios64/*.a
strip -S -X out_ios64/libwebrtc64.a

5.編譯源碼

Windows/Linux/Android/Mac/IOS:

ninja -C out/Default

好了,這樣就編譯出來所有相關的庫和測試程序。
生成vs工程windows
1.生成VS項目文件

set DEPOT_TOOLS_WIN_TOOLCHAIN=0
set GYP_GENERATORS=msvs-ninja,ninja
set GYP_MSVS_VERSION=2015 (這里是2013會出現問題,生成的文件缺失很多)

生成VS2013項目文件(推薦使用)

gn gen out/Default –ide=vs2013

生成VS2015項目文件

gn gen out/Default –ide=vs2015
gn gen out/Default -ide=vs2015 --args="is_debug=true is_component_build=true target_cpu=\"x86\""

6. 最后


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM