1 几种源码下载方案对比
一共四种方法,除了云服务器没试之外把能踩的坑都踩了一遍,最后使用的是挂代理的方法,这种方法是效率最高的。
1.1 拉别人下好的代码
最快,但是遇到问题不好解决。一开始直接拉了别人的百度网盘拉下来的代码,编译报错,错误在网上搜不到,分析了半天也没解决,只能放弃。
1.2云服务器
这种方法看别人成功了,但是云服务器得买国外的就不会被墙了,而且云服务器操作不太方便,如果看代码的话都得在云服务器上面,花费略高。
1.3 国内镜像
国内都是对代码做了镜像,很多依赖库还是得挂代理,还要替换git仓库地址,操作复杂。而且操作了半天还是失败了,应该是之前用的代理服务器不靠谱,依赖不完整。
1.4 挂代理(推荐)
这种方式最省心,我用的IGuGe扩展加Clash,很稳定,一遍就成功了,IGuGe是付费的,18块钱一个月,在晚上测试的时候可以把带宽跑满,大概拉了二十分钟就拉完了,代码完整无异常。
2 源码编译环境准备
2.1 环境要求
- WebRTC要求是 64位机器 8G 内存。
- 至少 100G 磁盘空间,NTFS格式。
- 用一台干净的机器来编译WebRTC,安装过python的会出现一些非常棘手的问题,安装depot_tools会安装python,把原来机子上的python删掉最好,这样能确保一遍成功。
- 操作系统我用的是win10,win11没试过。
- 安装visual studio,社区版即可,我用的是VS2022,安装路径务必选C盘。
- 安装win10SDK,并安装“Debugging Tools For Windows”。
2.2 代理服务器配置
在edge的扩展里搜索iGG谷歌学术助手,安装完以后登录账号打开,点击“客户端下载与订阅“。然后下载Clash Windows客户端,在Clash配置选项中,将IGG配置与订阅中的Clash订阅码粘贴到URL空白里然后点击下载就可以在客户端中使用了。节点会自动选择,不需要自己配置。 然后右键点击Clash的系统托盘图标,确保开启了系统代理和全局模式。 查看代理是否已开启,记住端口号。 打开谷歌或者youtube测试一下,如果访问ok的话代理就设置成功了。
2.3 VS和Win10SDK安装配置
我的VS配置如下图所示 关于Win10SDK的版本问题,之前安装的时候只勾选了19041版本的,没有勾选18042,执行ninja命令报错unknow type name,后来看了别人的博客,把几个SDK都装了就没问题了,我把18042装上以后就不报错了,应该是SDK的版本问题,多装一些没事,装少了报的错误莫名其妙的,错一点点都编译不起来,真的是给搞怕了,比ffmpeg难编多了。
2.4 depot_tools安装
depot_tools就是一堆下载代码,编译等相关的工具,Google统一打包在 depot_tools中,你需将它下载到本地。这里需要注意,完整的depot_tools大概1个G左右,有的人给的depot_tools压缩包不完整,还需要执行gclient才能获得完整的depot_tools,执行gclient也需要代理服务器,前面我们已经配置了代理服务器,这一步我们直接从git上面拉取即可。完整的depot_tools工具安装方式如下。
- 1.安装git并获取depot_tools
git的配置就不解释了,在windows下面把git配置好就行了。配置完毕以后新建一个文件夹,在当前目录下执行 cmd命令行执行: set http_proxy=127.0.0.1:xxxx;(xxxx为你的代理服务器的端口号) set https_proxy=127.0.0.1:xxxx git bash里执行: export http_proxy=127.0.0.1:xxxx; export https_proxy=127.0.0.1:xxxx 然后再执行 git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git depot_tools目录如下所示 - 2.配置depot_tools 环境变量
将depot_tools目录添加到环境变量,并且配置DEPOTTOOLSWIN_TOOLCHAIN为0,这个变量配置后,gclient sync会下载buildtools。配置完成记得重启让环境变量生效。
- 3.执行一下gclient,安装Windows下所需的工具
重启完成后,在cmd中执行gclient,等待下载,挂了代理的话这一步是不会报错的,下载完成后执行一下gclient,如图所示就是成功了。
3 WebRTC源码下载与编译
3.1源码下载
先创建一个文件夹,再执行fetch命令
mkdir webrtc-checkout
cd webrtc-checkout
fetch --nohooks webrtc
gclient sync
执行完是这样的
3.2源码编译
代码下载完以后就开始编译源码,先cd到src文件夹中,再执行
$ cd src
$ gn gen out/Default
$ ninja -C out/Default
执行完ninja命令后我们就可以在 src\out\Default\ 目录下找到 all.sln 这个工程文件,到这里我们就完成编译了。
参考资料
|