一、准备
1.操作系统win10 64位
2.合理的上网方式,需要正常访问google,最好有20G以上流量
3.安装VS2019,笔者使用的是社区版,并选中C++相关,笔者设置如下
注意,win10的sdk需要是10.0.20348.1,其他版本可能导致编译不通过,而且这个版本会根据webrtc源码的更新而发生变化
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 # 当过程中断时(包括上一步的失败),我们可以使用该命令恢复并继续
可能需要执行gclient sync ,直到出现如下提示,才代表同步成功
笔者下载了40多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
如提示缺少文件则回到上一步继续执行 gclient sync 同步文件
若一切顺利,会出现类似如下图所示
WebRTC编译后会在src\out\Default\obj和rc\out\Release\obj目录下生成整个WebRTC工程的静态库:webrtc.lib,链接下这个就可以了。
整个目录太大,不方便上传,
后记:
很多小伙伴,想需要查看下,有哪些参数可以设置,可以使用如下命令查看
gn args --list out/Default
此命令需要提前执行下 gn gen out/Default才能使用
可以根据实际需要调整编译参数
参考资料
WebRTC最新源码获取+windows10+vs2019编译完整过程_c663231的博客-CSDN博客
Windows平台WebRTC编译(持续更新) - 剑痴乎
Windows平台WebRTC编译-VS2017 - 剑痴乎
WebRTC笔记之二:编译(2021年3月更新)_webrtc编译_草上爬的博客-CSDN博客
WebRTC 国内镜像
https://webrtc.googlesource.com/src/+/refs/heads/master/docs/native-code/development/index.md