WebRTC源码下载与编译

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 这个工程文件,到这里我们就完成编译了。
在这里插入图片描述

参考资料

猜你喜欢

转载自blog.csdn.net/wugebucuo/article/details/124437234