操作系统:Windows 10
IDE: Visual Studio 2019
官网:https://chromium.googlesource/external/webrtc
一、前言
由于构建mediasoup的Windows客户端需要用到Google开源的WebRTC项目,所以决定亲自动手编译试试。WebRTC是一个非常庞大的工程,由于Q的存在又将编译的难度拉伸了一个档次,不得不说整个过程真的很虐心,在这里记录一下。我所使用的所有软件版本就现在来说都是最新的,应该算是目前最佳的方案。
二、网络代理
由于众所周知的原因,Google优秀的开源项目都被拦截在Q外面,这对我们这些想要师夷长技以制夷的人来说是很难受的。有经验一点的人可能都会使用***,但这个有它的局限性,就是Windows下只有浏览器可以使用代理,系统中其它软件还是无法连上Google的服务器,比如Git。这里推荐:Netch,是为网络游戏玩家设计的游戏加速器,支持全局代理。具体使用方法自行百度,这里不做过多介绍,配置模式注意需要改为:[TUN/TAP]绕过局域网才是全局代理。
三、安装depot tools
depot_tools是个工具包,里面包含gclient、gcl、gn和ninja等工具,这些根据都是使用python写的。其主要的功能是对git的增强,让代码管理和编译更加简单。
所以首先我们要安装git和python,注意python要使用最新的python2版本,并且安装时加入环境变量。python3据说有深坑,我也没敢试。
接下来以管理员权限开启控制台cmd.exe,输入以下命令开始下载depot_tools:
git clone https://chromium.googlesource/chromium/tools/depot_tools.git
下载完成后,将depot_tools加入系统环境变量,注意放在最前面:
然后使用控制台进入depot_tools目录,运行update_depot_tools.bat文件,系统会对depot_tools进行更新,安装一些必要的软件包。安装完成后depot_tools就会扩大到800多M的大小。
四、下载webrtc源码
创建一个libwebrtc目录,再以管理员权限开启控制台进入该目录,输入以下命令下载webrtc源码:
set DEPOT_TOOLS_WIN_TOOLCHAIN=0
fetch --nohooks webrtc
中间下载出错了也不要紧,输入以下命令可以继续下载:
gclient sync
总的源码包大概有12GB左右,所以这个过程会很长。
五、安装VS2019
安装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。
六、编译webrtc源码
首先开启控制台,配置临时环境变量,指定VS2019和SDK的安装位置:
set GYP_MSVS_VERSON=2019
set vs2019_install=D:\Develop\Microsoft Visual Studio\2019\Community
set GYP_MSVS_OVERRIDE_PATH=D:\Develop\Microsoft Visual Studio\2019\Community
set WINDOWSSDKDIR=D:\Windows Kits\10
set GYP_GENERATORS=msvs-ninja,ninja
set DEPOT_TOOLS_WIN_TOOLCHAIN=0
接下来就可以愉快的编译了
gn gen out/Default --ide=vs
ninja -C out/Default
参考:
1、https://bbs.huaweicloud/blogs/204798
2、Windows平台WebRTC编译(持续更新) - 剑痴乎
3、Windows平台WebRTC编译-VS2017 - 剑痴乎
4、在win10上编译webRTC(问题篇)_CSDN的博客-CSDN博客