当前位置: 首页 > news >正文

Window下VS2019编译WebRTC通关版

这段时间需要实现这样一个功能,使用WebRTC实现语音通话功能,第一步要做的事情就是编译WebRTC源码,也是很多码友会遇到的问题。

经过我很多天的踩坑终于踩出来一条通往胜利的大路,下面就为大家详细介绍,编译步骤以及踩坑问题吧!

在这里我首先说明:WebRTC的源码我就不提供了,因为我也是沾了别的博友的光,这里我才用的是2021年WebRTC版本

下载源码踩坑记录:

不需要下载git插件、gn插件,只需要下载对WebRTC源码以及depot_tools就行。

编译环境

windows10专业版 + VS2019

踩坑记录:

1:windows系统必须是专业版。

之前我的电脑是windows教育版本,无论如何编译都是不行滴!如果和我一样的版本,赶紧升级吧!

2:最低要求是:VS2019(10.0.19041)

如果你下载的是2021年之前的WebRTC,那么2017有可能支持(我说的是有可能),21版本的我已经替大家试验过了,VS2017无法编译。

环境安装与配置

1:VS2019安装

大家可以从官网上下载VS2019的安装包,我使用的是:vs_community__2019.exe(如果有想要的可以私我哟~)

这一步不必再多说了,安装很简单。

2:配置VS2019中WindowSDK的调试工具

找到Windows 10.0.19041的包

控制面板 --> 程序和功能

找到新安装的工具包后,右键选择更改功能

会出现以下页面

选择"Change"功能,点击"Next",会出现以下页面

默认安装的VS2019程序是没有勾选 "Debugging Tools for Windows ",此时需要勾选上该选项,用于调试。

后续根据提示安装即可。

上述插件信息安装完成后,需要查询10.0.19041对应的widnow kit所在的位置。

可以使用Everything全面搜索,例如我的主机中,路径是:D:\Windows Kits\10\Include

如图所示:

踩坑记录:

出现:Error WINDOWSSDKDIR。

有博友建议全局搜索"10"文件夹,拷贝到:C:\Program Files (x86)\Windows Kits下面,如果不修改,WebRtc代码就会找不到,出现Error WINDOWSSDKDIR

其实,我们只需要在环境变量中配置成D盘就可以了,真的!不需要进行拷贝。

3:系统环境变量配置

打开环境变量功能页面,如图所示:

对于其他博友所说的 set DEPOT_TOOLS_WIN_TOOLCHAIN = 0等等配置,其实都是在环境变量中配置的。

那么在环境变量中都需要设置哪些内容呢?

3.1:Path配置depot_tools

正如大家所说,一定要将depot_tools设置到最开始的位置(没毛病!)

3.2:DEPOT_TOOLS_WIN_TOOLCHAIN设置

3.3:版本配置

 3.4:VS2019编译环境配置

3.5:kits环境配置

只需要上述五条环境变量配置即可,多余了也没用。

源码编译

上述步骤完成以后就可以进行源码编译了。

源码编译

找到下载的webRTC源码位置,切换到src文件夹下面,在src文件夹下面启动cmd窗口。

如图所示:

 输入指令:

gn gen --target=x64 --ide=vs2019 --args="is_debug=true rtc_enable_protobuf=false is_clang=false target_cpu=\"x64\"  enable_iterator_debugging=true  use_custom_libcxx=false symbol_level=0 rtc_include_tests=false" out/debug_x64

结束后,输入下一条指令:ninja -C out/debug_x64

注意:上面是生成的debug版本,如果想要生成Release版本,只需要将"is_debug = false"就可以了。

等待编译完成后,就会生成webrtc.lib了。

接下来就可以使用sample中的例子进行操作啦!

 之前参考其他博友写的内容,总是不成功,终于让我编译出来了,希望我的方法对大家有用,按照我的方式一定不会出现错误的,坑已经为大家踩过了。

我是糯诺诺米团,一名C++开发程序媛~

http://www.lryc.cn/news/359712.html

相关文章:

  • 【云原生 | 60】Docker中通过docker-compose部署kafka集群
  • allure测试报告用例数和 pytest执行用例数不相同问题
  • Ubuntu 离线安装 gcc、g++、make 等依赖包
  • Vxe UI vxe-upload 上传组件,显示进度条的方法
  • 探索API接口:技术深度解析与应用实践
  • ARM-V9 RME(Realm Management Extension)系统架构之系统安全能力的系统隔离属性
  • 一个班有n个学生,需要把每个学生的简单材料(姓名和学号)输入计算机保存。然后可以通过输入某一学生的姓名查找其有关资料。
  • python的range() 函数
  • ClickHouse数据管理与同步的关键技术
  • 【一竞技DOTA2】东南亚Bleed战队官宣Emo正式加盟
  • 算法学习笔记(7.3)-贪心算法(最大切分乘问题)
  • 大型企业用什么文件加密软件,五款适合企业的文件加密软件
  • 【数据结构】二叉树运用及相关例题
  • Java基础知识点(反射、注解、JDBC、TCP/UDP/URL)
  • postgressql——Tuple学习(2)
  • Linux日志管理
  • 【社区投稿】给 NdArray 装上 CUDA 的轮子
  • Linux|Linux常用命令合集(一)
  • RTPS协议之Behavior Module
  • Socket网络通讯入门(一)
  • 第十五课,海龟画图:抬笔与落笔函数、画曲线函数
  • 【机器学习】让大模型变得更聪明
  • 5.26机器人基础-DH参数 正解
  • Vue3项目练习详细步骤(第五部分:用户模块的功能)
  • 测试onlyoffice在线预览文件功能
  • Day57 每日温度 + 下一个更大元素Ⅰ
  • nuxt3 api如何透传(不引第3方库)
  • list常用接口模拟实现
  • 前端工程化工具系列(三) —— Stylelint(v16.6.1):CSS/SCSS 代码质量工具
  • crossover mac好用吗 CrossOver Mac怎么下载 Mac用crossover损害电脑吗