操作系统:Windows 10

IDE: Visual Studio 2019

官网:https://chromium.googlesource.com/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.com/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.com/blogs/204798

2、Windows平台WebRTC编译(持续更新) - 剑痴乎

3、Windows平台WebRTC编译-VS2017 - 剑痴乎

4、在win10上编译webRTC(问题篇)_CSDN的博客-CSDN博客

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐