一、具体步骤
1、下载安装 Visual Studio
(1)、下载 vs2017:https://visualstudio.microsoft.com/zh-hans/vs/older-downloads/
(2)、安装完VS2017后,必须安装SDK调试工具。打开控制面板->程序与功能,找到刚才安装的最新Windows Software Development Kit,鼠标右键->change
(3)勾选Debugging Tools For Windows,然后点击change
2、下载python
建议下载 python 3.8 版本,因为我用 2.7 版本在中途出现了问题
下载地址:https://www.python.org/downloads/
3、安装Chromium软件仓库工具
留够 30GB 以上的足够空间,因为 WebRTC 确实比较大
(1)下载depot_tools.zip并解压缩,比如我解压缩之后是在 C:\depot_tools\ 这个目录下面
(2)将 depot_tools 的路径添加到系统的环境变量,并把它放在最上面
(3)在 C:\depot_tools\ 目录下面打开 cmd 窗口,然后执行 gclient,这个时候会安装自己的各种工具副本,出现下面的界面表示安装成功
如果遇到失败,可以从下面几个角度检查一下
1、检查自己的网络
2、检查python
3、检查自己是不是设置了DEPOT_TOOLS_UPDATE=0,这样的环境变量,如果有那么删除
https://stackoverflow.com/questions/61542211/unable-to-install-chromium-depot-tools
3、下载源代码
(1)创建一个目录
(2)执行 fetch --nohooks webrtc 下载整个 webrtc 的工程,这个时间会比较久一些
mkdir webrtc-checkout
cd webrtc-checkout
fetch --nohooks webrtc
(3)通过输入以下内容来选择稳定版本60,而不是最新版本
cd src
git branch -r
git checkout branch-heads/60
(4)设置环境变量
// 设置成自己 vs2017 的路径
set vs2017_install=C:\Program Files (x86)\Microsoft Visual Studio\2017\Community
set GYP_MSVS_OVERRIDE_PATH=C:\Program Files (x86)\Microsoft Visual Studio\2017\Community
set GYP_GENERATORS=msvs-ninja,ninja
// 告诉depot_tools使用我们本机的VS进行编译
set DEPOT_TOOLS_WIN_TOOLCHAIN=0
(5)下载代码,这个时间也会比较久
gclient sync
遇到的问题:No module named win32con
按照网上说的办法执行 pip install pywin32,执行完之后还是失败,猜测这个问题和 python 有关,我用的是 python 2.7,接下来我把 python 换成了 3.8,然后继续编译,这个问题后面再看别人博客的时候也发现了解决办法:
下载 https://sourceforge.net/projects/pywin32/files/pywin32/Build%20221/,然后把所有的 exe 都放在 python2 的安装路径下
然后接下来 gclient sync 就执行成功了,也表示代码已经下载完了
(6)生成 vs2017 工程
cd src
gn gen --ide=vs out/Default
其它编译命令
//下面一条指令生成VS2017的win32 debug工程
gn gen out/Debug --ide=vs2017 --args="is_debug=true target_cpu=\"x86\""
//下面一条指令生成VS2015的win32 release工程
gn gen out/Release --ide=vs2017 --args="is_debug=false target_cpu=\"x86\""
//以上方法均建议使用ninja方法编译,速度快
ninja -C out/Debug
//或者
ninja -C out/Release
这个时候又遇到报错了
You must installWindows 10 SDK version 10.0.19041.0 including the "Debugging Tools for Windows" feature.
ERROR at //build/toolchain/win/BUILD.gn:49:3: Script returned non-zero exit code.
按照提示下载 10.0.19041 sdk,下载地址:https://developer.microsoft.com/en-us/windows/downloads/windows-10-sdk/
下载安装成功后执行命令就正常了
(7)编译程序
ninja -C out/Default
最后会在 out/Default 目录下面生成许多的可执行文件和 dll,接下来就是自己去玩了
二、参考资料
1、webrtc编译官方文档:https://webrtc.github.io/webrtc-org/native-code/development/
2、webrtc编译官方文档:https://sourcey.com/articles/building-and-installing-webrtc-on-windows
3、gclient sync 失败问题:https://zhuanlan.zhihu.com/p/70879583
4、gclient runhooks 失败:https://stackoverflow.com/questions/8684282/gclient-runhooks-fails
5、webrtc 编译:https://blog.csdn.net/qq_37212538/article/details/80387253