# WebRTC
## 1、安裝depot_tools
> 這是一個工具包,里面包含gclient、gcl、gn和ninja等工具,都是用python寫的
```
git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
```
> 克隆完成之后將`depot_tools`路徑添加到系統環境變量,注意放在最前面
> 然后雙擊運行`depot_tools`路徑下的`update_depot_tools.bat`批處理文件
## 2、下載WebRTC源碼
> 在`depot_tools`同級目錄下創建`libwebrtc`文件夾,以管理員權限開啟控制臺進入該目錄,然后執行以下命令進行下載
```
set DEPOT_TOOLS_WIN_TOOLCHAIN=0
fetch --nohooks webrtc
```
> 源代碼大小約為12GB,下載過程較為漫長,如下載過程中出錯,執行以下命令繼續下載
```
gclient sync
```
## 3、安裝VS2019
> 選擇自定義安裝即可,安裝路徑建議使用默認路徑,否則后面的編譯可能會報錯
注意事項:
- Desktop development with C++組件中10.0.19041或以上的Win10 SDK,如果沒看到該版本,可以在`單個組件`中進行選擇
- Desktop development with C++組件中MFC以及ATL這兩項
> 安裝完VS2019后,必須安裝SDK調試工具。打開控制面板->程序與功能,找到剛才安裝的最新Windows Software Development Kit,鼠標右鍵->change。勾選Debugging Tools For Windows,然后點擊change


## 4、編譯WebRTC
> 打開`src`文件夾
```
cd src
```
> 臨時配置環境變量,這里的路徑為VS2019默認安裝路徑
```
set GYP_MSVS_VERSON=2019
set vs2019_install=C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise
set GYP_MSVS_OVERRIDE_PATH=C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise
set WINDOWSSDKDIR=C:\Program Files (x86)\Windows Kits\10
set GYP_GENERATORS=msvs-ninja,ninja
set DEPOT_TOOLS_WIN_TOOLCHAIN=0
```
> 接下來進行編譯
```
gn gen out/Default --ide=vs2019 --args="is_debug=false use_custom_libcxx=false"
ninja -C out/Default
```
## 5、常見問題
> ERROR at //build/timestamp.gni:31:19: Script returned non-zero exit code.
**原因分析**:LASTCHANGE文件不存在
**解決方案**:打開命令行窗口,找到路徑`libwebrtc/src`執行以下命令
```
python build\\util\\lastchange.py build\\util\\LASTCHANGE
```
再次運行以下命令
```
gn gen out/Default --ide=vs2019 --args="is_debug=false use_custom_libcxx=false"
```
> ninja: error: '../../resources/audio_processing/test/py_quality_assessment/noise_tracks/city.wav', needed by 'py_quality_assessment/noise_tracks/city.wav', missing and no known rule to make it
**原因分析**:WebRTC源代碼下載不完整
**解決方案**:執行以下命令進行下載
```
gclient sync
```