Qt6.5.1+WebRTC学习笔记(十)开发环境搭建(win10+vs2022)

news2024/11/24 6:21:13

 一、准备

1.操作系统win10 64位

2.合理的上网方式,需要正常访问google,最好有40G以上流量

3.安装VS2022,笔者使用的是社区版,并选中C++相关,笔者设置如下

 

 

 

 注意,win10的sdk需要是10.0.22621.0,其他版本可能导致编译不通过,而且这个版本会根据webrtc源码的更新而发生变化

 4.安装Debugging Tools

控制面板 → 程序 → 程序和功能 → 选中“Windows Software Development Kit” → 变更 → Change → Check “Debugging Tools For Windows” → Change

 

 

5.安装git,并设置代理

#全局代理
git config --global http.proxy  http://127.0.0.1:1080
git config --global https.proxy  http://127.0.0.1:1080

//查看当前设置
//git config -l
//取消全局代理
//git config --global --unset http.proxy
//git config --global --unset https.proxy

6.安装python,笔者使用的python3

7.安装Microsoft DirectX SDK

注:笔者未进行安装,可能本机已经安装或不需要安装

8.安装depot_tools

depot_tools是包含下载、编译的相关工具,需要先下载并配置它,才能继续后面的操作。

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

或者直接下载https://storage.googleapis.com/chrome-infra/depot_tools.zip
下载完后解压,并将解压好的depot_tools目录添加到path系统环境变量中

二、获取源码

1.打开cmd,切换到一个空目录中(目前不要有空格或中文)

2.在cmd中设置临时环境变量,以下是笔者设置的,可参考下

set PATH=%PATH%;c:\workplace\webrtc\depot_tools
set vs2022_install=C:\Program Files\Microsoft Visual Studio\2022\Community
set GYP_MSVS_OVERRIDE_PATH=C:\Program Files (x86)\Microsoft Visual Studio\2022\Community
set GYP_GENERATORS=msvs-ninja,ninja
set WINDOWSSDKDIR=C:\Program Files (x86)\Windows Kits\10
# 告诉depot_tools使用我们本机的VS进行编译
set DEPOT_TOOLS_WIN_TOOLCHAIN=0
set http_proxy=127.0.0.1:10809 #请替换成自己的代理
set https_proxy=127.0.0.1:10809 #请替换成自己的代理

3.获取WebRTC源码

mkdir webrtc #这是创建一个目录,当然也可以用鼠标创建。
cd webrtc #进入到我们刚刚创建的目录中
gclient config --name src https://webrtc.googlesource.com/src
fetch --nohooks webrtc #获取代码,这一步会花点时间,一般会失败,我试了几次都失败了
gclient sync # 当过程中断时(包括上一步的失败),我们可以使用该命令恢复并继续

可能需要执行gclient sync ,直到出现如下提示,才代表同步成功

 

笔者下载了40多G数据

4.编译

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

gn gen out/Release --ide=vs2022 --args="is_debug=false"
ninja -C out/Release

如提示缺少文件则回到上一步继续执行 gclient sync 同步文件

若一切顺利,会出现类似如下图所示

WebRTC编译后会在src\out\Default\obj和rc\out\Release\obj目录下生成整个WebRTC工程的静态库:webrtc.lib,链接下这个就可以了。

整个目录太大,不方便上传,

后记:

很多小伙伴,想需要查看下,有哪些参数可以设置,可以使用如下命令查看

gn args --list out/Default

此命令需要提前执行下 gn gen out/Default才能使用

可以根据实际需要调整编译参数

参考资料

WebRTC最新源码获取+windows10+vs2019编译完整过程_c663231的博客-CSDN博客

Windows平台WebRTC编译(持续更新) - 剑痴乎

Windows平台WebRTC编译-VS2017 - 剑痴乎

WebRTC笔记之二:编译(2021年3月更新)_webrtc编译_草上爬的博客-CSDN博客

WebRTC 国内镜像

https://webrtc.googlesource.com/src/+/refs/heads/master/docs/native-code/development/index.md

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/609264.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

吴恩达 ChatGPT Prompt Engineering for Developers 系列课程笔记--06 Transforming

06 Transforming 大语言模型(LLM)很擅于将输入转换为不同格式的输出,比如翻译、拼写校正或HTML格式转化。相比于复杂的正则表达式,Chat GPT实现更加准确和高效。 1) 不同语种的转换 下述语句实现了英文到西班牙语的翻译。 pro…

Windows IIS/docker+gunicorn两种方式部署django项目

写在最前 本篇文章并不涉及如何使用宝塔搭建django项目,仅适用于windows和docker部署,其中docker是运行在linux平台上的,如果您想在windows上运行docker,请自行搜索如何在windows上运行docker 一、Windows IIS部署 软件版本Win…

MySQL-Linux版安装

MySQL-Linux版安装 1、准备一台Linux服务器 云服务器或者虚拟机都可以; Linux的版本为 CentOS7; 2、 下载Linux版MySQL安装包 下载地址 3、上传MySQL安装包 使用FinalShell软件上传即可! 4、 创建目录,并解压 mkdir mysqltar -xvf my…

【SpringCloud学习笔记】zuul网关

【SpringCloud学习笔记】 为什么需要网关zuul网关搭建zuul网关服务网关过滤器 为什么需要网关 微服务项目一般有多个服务,每个服务的地址都不同,客户端如果直接访问服务,无疑是增加客户端开发难度,项目小还好,如果项目…

【图像任务】Transformer系列.1

介绍几篇改进Transformer模型实现亮度增强、图像重建的任务:LLFormer(AAAI2023),DLSN(TPAMI2023),CAT(NeurIPS2022)。 Ultra-High-Definition Low-Light Image Enhanceme…

Linux | 进程控制

啊我摔倒了..有没有人扶我起来学习.... 👱个人主页: 《 C G o d 的个人主页》 \color{Darkorange}{《CGod的个人主页》} 《CGod的个人主页》交个朋友叭~ 💒个人社区: 《编程成神技术交流社区》 \color{Darkorange}{《编程成神技术…

Redis的内存策略

过期Key处理: 1)Redis之所以性能强大,最主要的原因就是基于内存来存储,然而单节点的Redis内存不宜设置的过大,否则会影响持久化或者是主从复制的性能,可以通过修改配置文件来设置redis的最大内存,通过maxmemory 1gb&am…

javaScript蓝桥杯-----粒粒皆辛苦

目录 一、介绍二、准备三、目标四、代码五、完成 一、介绍 俗话说“民以食为天”,粮食的收成直接影响着民生问题,通过对农作物产量的统计数据也能分析出诸多实际问题。 接下来就让我们使用 ECharts 图表,完成 X 市近五年来的农作物产量的统…

Python批量下载参考文献|基于Python的Sci-Hub下载脚本|Python批量下载sci-hub文献|如何使用sci-hub批量下载论文

本篇博文将介绍如何通过Python的代码实现快速下载指定DOI号对应的文献,并且使用Sci-Hub作为下载库。 一、库函数准备 在开始之前,我们需要先安装一些必要的库,包括: requests:发送HTTP请求并获取响应的库&#xff1…

南山城市更新--向南村(一期,二期)项目详情

向南村(一期)城市更新单元项目简介 项目于2010年被列入《深圳城市更新单元规划制定计划第一批计划》中,申报主体为向南实业股份有限公司,后与恒大合作开发。 项目位于南山区桂庙路南侧,毗邻前海、衔接后海&am…

经典算法:Fenwick Tree

经典算法:Fenwick Tree 1. 算法简介2. 原理介绍3. 算法实现4. 例题说明 1. 解题思路2. 代码实现 5. 参考链接 1. 算法简介 Fenwick Tree又称为Binary Indexed Tree,也算是一种常见的数据结构了。 他其实某种意义上来说算是Segment Tree的一种变体&…

克隆虚拟机

上一篇我们已经讲过了启动虚拟机并安装Linux系统,下面我们来讲一下如何通过已经创建好的虚拟机spark01克隆出spark02和spark03来,从而满足搭建大数据集群环境需要多台虚拟机的需求。 首先我们要理解两个概念: 1.完整克隆 完整克隆的虚拟机可…

【算法证明 三】计算顺序统计量的复杂度

计算顺序统计量,在 c 标准库中对应有一个函数:nth_element。其作用是求解一个数组中第 k 大的数字。常见的算法是基于 partition 的分治算法。不难证明这种算法的最坏复杂度是 Θ ( n 2 ) \Theta(n^2) Θ(n2)。但是其期望复杂度是 Θ ( n ) \Theta(n) …

从源码全面解析 dubbo 服务暴露的来龙去脉

👏作者简介:大家好,我是爱敲代码的小黄,独角兽企业的Java开发工程师,CSDN博客专家,阿里云专家博主📕系列专栏:Java设计模式、Spring源码系列、Netty源码系列、Kafka源码系列、JUC源码…

SpringBoot配置 -- SpringBoot快速入门保姆级教程(二)

文章目录 前言二、SpringBoot配置1. 了解配置文件的3种格式2.yaml格式语法规则3.读取yaml数据的3种方式4.多环境开发配置5.多环境命令行启动参数设置6. 多环境开发兼容问题7.配置文件分类 总结 前言 为了巩固所学的知识,作者尝试着开始发布一些学习笔记类的博客&am…

vcruntime140.dll如何修复

VCRUNTIME140.dll是Windows操作系统上一个非常重要的动态链接库文件,它是由Microsoft Visual C Runtime提供的运行时库文件之一,被许多应用程序用来进行编译和运行。如果该文件丢失或损坏,很多应用程序就无法正常运行,这可能会带来…

三分钟了解SpringBoot配置优先级底层源码解析

👏作者简介:大家好,我是冰点,从业11年,目前在物流独角兽企业从事技术方面工作,🍂博主正在努力完成2023计划中:以梦为马,扬帆起航,2023追梦人📝联系…

关于性能测试平台的一些想法,想跟大家聊一下

目录 一、任务管理 二、用例管理 三、环境管理 四、压测机管理 五、数据管理 六、监控管理 七、日志管理 八、报表管理 九、配置管理 十、系统管理 组织架构 这里我按照每个不同系统归属的项目组为横向,性能测试团队作为职能部门为纵向的矩阵式组织架构为…

JUC学习(二)

目录 Doug Lea — JUC并发包的作者锁框架Lock和Condition接口可重入锁公平锁与非公平锁读写锁锁降级和锁升级队列同步器AQS底层实现公平锁一定公平吗?Condition实现原理 ——————————————————————————————— 在前面,我们了解…

ICV报告:乘光伏新能源汽车之势,功率器件蓄势待发

前言: 电力电子器件(Power Electronic Device),又称为功率半导体器件,用于电能变换和电能控制电路中的大功率(通常指电流为数十至数千安,电压为数百伏以上)电子器件。功率器件能够承受和控制较大电流、电压…