Windows平台WebRTC编译-VS2017

转载网站:https://blog.jianchihu.net/webrtc-build-vs2017.html

在音视频领域,想深入研究的话,必定会接触WebRTC。WebRTC是一个庞大的工程,就像是音视频领域的百科全书,音视频采集,编解码,传输,渲染等一条龙在WebRTC里都有,而且WebRTC还有很多先进的音视频处理算法。由于WebRTC代码过于庞大,所以最好单步调试跟踪代码运行,这样才可以更好地学习WebRTC,否则很难有头绪。工欲善其事必先利其器,作为调试神器,宇宙第一IDE Visual Studio必不可少。所以本篇文章主要讲下如何在Windows上编译WebRTC,同时得到VS工程,然后调试。

系统要求

  • Win7及以上64位系统。
  • 内存至少8G,当然越大越好。
  • 100G磁盘空间(NTFS格式),不能是FAT32,因为会生成大于4G的文件。

Visual Studio安装

WebRTC用到了很多C++最新特性,所以编译最新WebRTC代码VS要求为2017版本。我用的是VS2017社区版。安装VS2017时选择自定义安装,必须勾选如下几项:

其他选项可以选择安准。如下是我的安装配置。
Windows平台WebRTC编译-VS2017 - 第1张  | 剑痴乎

  • 10.0.17134 或以上的Win10 SDK,后面还要安装调试工具
  • MFC以及ATL这两项

安装完VS2017后,必须安装SDK调试工具。打开控制面板->程序与功能,找到刚才安装的Windows Software Development Kit,鼠标右键->change。
Windows平台WebRTC编译-VS2017 - 第2张  | 剑痴乎

勾选Debugging Tools For Windows,然后点击change。
Windows平台WebRTC编译-VS2017 - 第3张  | 剑痴乎

depot_tools安装

下载depot_tools然后解压到某个目录,比我的解压到E盘根目录。接着将该depot_tools目录的路径加到系统环境变量Path里,然后把该路径移到最前面(避免已安装的python与git造成影响)。
Windows平台WebRTC编译-VS2017 - 第4张  | 剑痴乎

然后新建一个系统环境变量: DEPOT_TOOLS_WIN_TOOLCHAIN ,值设置为0,这是为了告诉depot_tools使用我们本机的VS进行编译。
Windows平台WebRTC编译-VS2017 - 第5张  | 剑痴乎

获取WebRTC源码

由于WebRTC的源码地址被墙了,所以需要通过代理才能得到源码。后面都是命令行操作,打开cmd窗口,由于我用的是ss代理,在cmd窗口我按如下设置:

 

1

2

set http_proxy=127.0.0.1:1080

set https_proxy=127.0.0.1:1080

设置当前cmd窗口代理上网,如果cmd窗口关闭了重开得重新设置。当然了,也可以设置系统全局代理上网。其他代理方法也类似。如果是VPN之类非代理,就不用这样设置了。

接着执行gclient命令,安装编译需要用到的一些工具,比如git以及python。

 

1

gclient

再接着设置一些环境变量。

 

1

2

3

set GYP_MSVS_VERSION=2017

set GYP_MSVS_OVERRIDE_PATH=D:\Program Files (x86)\Microsoft Visual Studio\2017\Community

set GYP_GENERATORS=msvs-ninja,ninja

 

其中GYP_MSVS_OVERRIDE_PATH是我们安装的VS2017路径。

然后cd到要放源码的地方(要遵守前面说的磁盘要求),执行:

 

1

2

3

4

mkdir webrtc-checkout

cd webrtc-checkout

fetch --nohooks webrtc

gclient sync

这一过程是个漫长的等待,要下的东西将近10G,包括源码以及一些测试的音视频文件资源等。
Windows平台WebRTC编译-VS2017 - 第6张  | 剑痴乎

使用gclient sync这一步得注意下,可能会报类似如下错误:

 

1

UnicodeDecodeError: 'ascii' codec can't decode byte 0xb0 in position 1: ordinal not in range(128)

Unicode字符编码问题,python的一个bug,因为很多人系统语言都是中文的,所以得按如下设置,把系统区域改为英文,然后重启即可。
Windows平台WebRTC编译-VS2017 - 第7张  | 剑痴乎

编译

生成VS2017工程文件:

 

1

2

cd src

gn gen --ide=vs out/Default

可以在src\out\Default\ 下得到 all.sln解决方案文件。

执行编译命令:

 

1

ninja -C out/Default

Windows平台WebRTC编译-VS2017 - 第8张  | 剑痴乎

用VS2017打开:
Windows平台WebRTC编译-VS2017 - 第9张  | 剑痴乎
可以看到众多工程,到此算是完成了。找到我们感兴趣的,就可以用VS单步调试,跟踪代码运行了。这么多宝贝够研究很久了。

代码更新

 

 

1

2

3

git checkout master

git pull origin master

gclient sync

 

总结

总之WebRTC在Windows上的编译很考验耐心,也很苛刻,需要电脑性能够好,有个好代理。

参考

1. WebRTC Native code Development
2. Chromium’s build instructions for Windows

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值