一、准备
1.操作系统win10 64位
2.合理的上网方式,需要正常访问google,最好有20G以上流量
3.安装VS2019,笔者使用的是社区版,并选中C++相关,笔者设置如下
4.安装Debugging Tools
控制面板 → 程序 → 程序和功能 → 选中“Windows Software Development Kit” → 变更 → Change → Check “Debugging Tools For Windows” → Change
5.安装git,并设置代理
#全局代理
git config --global http.proxy http://127.0.0.1:1080
git config --global https.proxy http://127.0.0.1:1080
//查看当前设置
//git config -l
//取消全局代理
//git config --global --unset http.proxy
//git config --global --unset https.proxy
6.安装python,笔者使用的python3
7.安装Microsoft DirectX SDK
注:笔者未进行安装,可能本机已经安装或不需要安装
8.安装depot_tools
depot_tools是包含下载、编译的相关工具,需要先下载并配置它,才能继续后面的操作。
git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
或者直接下载https://storage.googleapis.com/chrome-infra/depot_tools.zip
下载完后解压,并将解压好的depot_tools目录添加到path系统环境变量中
二、获取源码
1.打开cmd,切换到一个空目录中(目前不要有空格或中文)
2.在cmd中设置临时环境变量,以下是笔者设置的,可参考下
set PATH=%PATH%;c:\workplace\webrtc\depot_tools
set vs2019_install=C:\Program Files (x86)\Microsoft Visual Studio\2019\Community
set GYP_MSVS_OVERRIDE_PATH=C:\Program Files (x86)\Microsoft Visual Studio\2019\Community
set GYP_GENERATORS=msvs-ninja,ninja
set WINDOWSSDKDIR=C:\Program Files (x86)\Windows Kits\10
# 告诉depot_tools使用我们本机的VS进行编译
set DEPOT_TOOLS_WIN_TOOLCHAIN=0
set http_proxy=127.0.0.1:10809 #请替换成自己的代理
set https_proxy=127.0.0.1:10809 #请替换成自己的代理
3.获取WebRTC源码
mkdir webrtc #这是创建一个目录,当然也可以用鼠标创建。
cd webrtc #进入到我们刚刚创建的目录中
gclient config --name src https://webrtc.googlesource.com/src
fetch --nohooks webrtc #获取代码,这一步会花点时间,一般会失败,我试了几次都失败了
gclient sync # 当过程中断时(包括上一步的失败),我们可以使用该命令恢复并继续
笔者下载完的一,发现有10多G
4.编译
cd src
gn gen out/Default --ide=vs2019
ninja -C out/Default
gn gen out/Release --ide=vs2019 --args="is_debug=false"
ninja -C out/Release
如出现LASTCHANGE错误则需要执行
python build\util\lastchange.py build\util\LASTCHANGE
如提示缺少文件则回到上一步继续执行 gclient sync 同步文件
若一切顺利,如下图所示
WebRTC编译后会在src\out\Default\obj和rc\out\Release\obj目录下生成整个WebRTC工程的静态库:webrtc.lib,链接下这个就可以了。
整个目录太大,不方便上传,笔者已编译好的Release目录 https://download.csdn.net/download/aggs1990/19553258
参考资料
https://blog.csdn.net/c663231/article/details/115317245
https://blog.jianchihu.net/windows-webrtc-build.html
https://blog.jianchihu.net/webrtc-build-vs2017.html
https://blog.csdn.net/caoshangpa/article/details/114494226
https://webrtc.googlesource.com/src/+/refs/heads/master/docs/native-code/development/index.md