# 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
![](images/screenshot_1611239036012.png)
![](images/screenshot_1611239078194.png)
## 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
```