Webrtc系列二——Webrtc for Window源代码下载和编译踩坑记录(含源代码)
创始人
2024-11-19 06:05:01
0

        关于webrtc for window源代码下载和编译,花了我不少的时间,其中遇到了不少的问题(坑啊),其实按照标准流程的话(如这篇文章《Windows环境编译webRtc源码》[1])就可以搞定。如果懂得科学上网的同学,可以参考一下上面说的这个文章进行。本文主要说明遇到的一些问题和如何解决的。并附上一份完整的代码链接(不需要科学上网)。

        首先还是按照标准的流程按照科学上网的方式说明一下,怎么下载和编译代码的。本文假定你已经有了一个visual studio 2022,如果没有的同学可以到微软的官网去下载。同时假定你已经有了科学上网工具(没有的话请可以直接到我网盘下载完整的代码)

        本文下面的所有命令都在git bash中执行的,同学也可以用command或者PowerShell(没有亲测,不保证一定ok)。

一、下载depot_tools及其环境变量的设置

        一般先建立一个工作空间,比如我的路径为E://workspace,cd到workspace目录下执行以下步骤:

1.下载depot_tools

​git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git

2.配置环境变量

二、代码的下载

3.进入到depot_tools中执行gclient

gclient

遇到第一个坑:

RPC failed transiently (retry in 1s): rpc error: code = Internal desc = prpc: sending request ... RPC failed transiently (retry in 2s): rpc error: code = Internal desc = prpc: sending request....

主要的原因是代理没有设置对,在git bash中设置如下

export http_proxy=http://127.0.0.1:1087 #根据自己的代理端口进行设置 export https_proxy=http://127.0.0.1:1087 #根据自己的代理端口进行设置

如果是command或者PowerShell中执行如下命令

set http_proxy=http://127.0.0.1:1087 #根据自己的代理端口进行设置 set https_proxy=http://127.0.0.1:1087 #根据自己的代理端口进行设置

千万记住不要忘记写成了

set http_proxy=127.0.0.1:1087 set https_proxy=127.0.0.1:1087

4.下载最新源码

mkdir webrtc cd webrtc fetch --nohooks webrtc 

遇到第二个坑:

....OpenSSL SSL_read: SSL_ERROR_SYSCALL, errno 0....

原因有几个

  • 第一个原因是因为有一个third_party三方库,目录很大,导致git服务器那边容易断

针对这种情况可以执行

git config --global http.sslVerify "false"  #将ssl的verify设置为false git config --global http.postBuffer 524288000 #改大http的post buffer
  • 如果第一种还不能解决,估计是git版本的问题,我用的git版本是2.44.0.windows.1,改为2.24.0.windows.1后此问题解决

下载完成后执行gclient sync

在执行gclient sync,先需要设置

export DEPOT_TOOLS_WIN_TOOLCHAIN=0

如果是command或者PowerShell中执行如下命令

set DEPOT_TOOLS_WIN_TOOLCHAIN=0

然后执行:

gclient sync

遇到第三个坑:

原因:是系统里面自己安装的python和depot_tools中的python的环境变量的顺序问题,gclient 使用自己本身电脑里面的python 3.12版本,实际需要depot_tools自带的3.8版本,解决方法是:将depot_tools在PATH环境变量中的位置提前,或者删除自己的python环境变量。

三、编译代码

cd src gn gen out/Default --ide=vs2022

遇到第四个坑:

$ gn gen out/Default --ide=vs2022 Traceback (most recent call last):   File "E:\rtc\rtcsource\src\build\vs_toolchain.py", line 589, in      sys.exit(main())              ^^^^^^   File "E:\rtc\rtcsource\src\build\vs_toolchain.py", line 585, in main     return commands[sys.argv[1]](*sys.argv[2:])            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^   File "E:\rtc\rtcsource\src\build\vs_toolchain.py", line 400, in CopyDlls     _CopyDebugger(target_dir, target_cpu)   File "E:\rtc\rtcsource\src\build\vs_toolchain.py", line 442, in _CopyDebugger     raise Exception('%s not found in "%s"\r\nYou must install ' Exception: dbghelp.dll not found in "C:\Program Files (x86)\Windows Kits\10\Debuggers\x64\dbghelp.dll" You must install Windows 10 SDK version 10.0.22621.0 including the "Debugging Tools for Windows" feature. ERROR at //build/toolchain/win/BUILD.gn:24:3: Script returned non-zero exit code.   exec_script("../../vs_toolchain.py",

原因是没有安装好“Debugging Tools For Windows”

安装方法,参考[3]:

控制面板 → 程序 → 程序和功能 → 选择“Windows Software Development Kit” → 更改 → 更改 → 勾选 “Debugging Tools For Windows” → 更改

在src\out\Default\ 下得到 all.sln解决方案文件,用vs打开可以选择任意一个目标进行编译。

也可以用命令行编译:

autoninja -C out/Default 

注:如果使用vs2019可能会有WindowSDK版本的问题,见参考文件[2]

如果不能科学上网的童鞋,请到本人网盘中下载源代码,此份代码包含所有的编译产物,读者可以自己决定是否需要删除,重新编译。

链接: https://pan.baidu.com/s/1Lexg8qzAkp44iKQoUwM6og?pwd=59gq 提取码: 59gq 
--来自百度网盘超级会员v4的分享

注意:使用网盘下载的代码需要根据自己下载的位置设置depot_tools工具的环境变量。同时该编译产出物都在git bash上执行的。代码压缩格式为bz2,建议在git bash下执行如下命令进行解压。

tar xvf webrtc_vs2022_based_windows_10.tar.bz2

参考资料

[1] Windows环境编译webRtc源码_webrtc源码下载-CSDN博客

[2] Windows下WebRTC编译 - 知乎

[3]Chromium Win10 开发环境搭建_window怎么安装chromium-CSDN博客

相关内容

热门资讯

一分钟内幕!科乐吉林麻将系统发... 一分钟内幕!科乐吉林麻将系统发牌规律,福建大玩家确实真的是有挂,技巧教程(有挂ai代打);所有人都在...
一分钟揭秘!微扑克辅助软件(透... 一分钟揭秘!微扑克辅助软件(透视辅助)确实是有挂(2024已更新)(哔哩哔哩);1、用户打开应用后不...
五分钟发现!广东雀神麻雀怎么赢... 五分钟发现!广东雀神麻雀怎么赢,朋朋棋牌都是是真的有挂,高科技教程(有挂方法)1、广东雀神麻雀怎么赢...
每日必看!人皇大厅吗(透明挂)... 每日必看!人皇大厅吗(透明挂)好像存在有挂(2026已更新)(哔哩哔哩);人皇大厅吗辅助器中分为三种...
重大科普!新华棋牌有挂吗(透视... 重大科普!新华棋牌有挂吗(透视)一直是有挂(2021已更新)(哔哩哔哩)1、完成新华棋牌有挂吗的残局...
二分钟内幕!微信小程序途游辅助... 二分钟内幕!微信小程序途游辅助器,掌中乐游戏中心其实存在有挂,微扑克教程(有挂规律)二分钟内幕!微信...
科技揭秘!jj斗地主系统控牌吗... 科技揭秘!jj斗地主系统控牌吗(透视)本来真的是有挂(2025已更新)(哔哩哔哩)1、科技揭秘!jj...
1分钟普及!哈灵麻将攻略小,微... 1分钟普及!哈灵麻将攻略小,微信小程序十三张好像存在有挂,规律教程(有挂技巧)哈灵麻将攻略小是一种具...
9分钟教程!科乐麻将有挂吗,传... 9分钟教程!科乐麻将有挂吗,传送屋高防版辅助(总是存在有挂)1、完成传送屋高防版辅助透视辅助安装,帮...
每日必看教程!兴动游戏辅助器下... 每日必看教程!兴动游戏辅助器下载(辅助)真是真的有挂(2025已更新)(哔哩哔哩)1、打开软件启动之...