Windows 下编译 WebRTC 记录 + 踩坑

一、具体步骤

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

6、WebRTC 编译和踩坑记录

7、在 win10 上编译 WebRTC 问题篇

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值