win10下载编译webrtc源码

2023-11-12

win10系统下载编译webrtc源码

一、下载安装VS2017

目前最新版本的webrtc已经可以用Vs2019,但是因为我们要使用的webrtc版本是以前的版本,旧版webrtc源码中vs_toolchain.py中指定了vs2017,所以不能用2019,否则编译是会出错。

1、官网下载vs2017

下载网址:[https://my.visualstudio.com/Downloads?q=visual%20studio%202017&wt.mc_id=omsftvscom~older-downloads](https://my.visualstudio.com/Downloads?q=visual studio 2017&wt.mc_id=omsftvscom~older-downloads)
在这里插入图片描述

2、安装vs2017

安装时,选择使用c++的桌面开发,一定要勾选MFC和ATL相关的组件
在这里插入图片描述

二、下载安装win10-SDK

下载Vs2017时会自动下载sdk,版本是10.0.17763.0,但是https://chromium.googlesource.com/chromium/src/+/master/docs/windows_build_instructions.md,中提到,必须安装10.0.19041或者更高版本的 Windows 10 SDK,所以我们还需要自定义安装win10-SDK
在这里插入图片描述

1、下载win10-SDK

下载网址:

https://developer.microsoft.com/en-us/windows/downloads/windows-10-sdk/

2、安装win10-SDK

注意一定要勾选Debugging Tools For Windows这一项
在这里插入图片描述

3、修改文件目录

复制C:\Program Files (x86)\Windows Kits\10\Redist\10.0.19041.0\ucrt这个文件夹到C:\Program Files (x86)\Windows Kits\10\Redist目录下,因为默认安装的win10-SDK的DLLs路径为:C:\Program Files (x86)\Windows Kits\10\Redist\10.0.19041.0\ucrt\DLLs…但是webrtc的src\build\vs_toolchain.py文件中sdk-DLLs的导入目录为:C:\Program Files (x86)\Windows Kits\10\Redist\ucrt\DLLs,为了避免错误,将ucrt复制到Redist目录下
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

三、下载depot_tools

由于Chromium项目的代码量巨大,又依赖了很多第三方代码库,所以如何有效的管理这些代码是个难题。Chromium官方提供了一个depot_tools来管理Chromium源代码的工具,官方开发工作流也是基于depot_tools。

1、下载网址

https://commondatastorage.googleapis.com/chrome-infra-docs/flat/depot_tools/docs/html/depot_tools_tutorial.html#_setting_up

点击红圈地方下载depot_tools
在这里插入图片描述

2、解压depot_tools

下载后直接解压到指定路径,不要在其他地方解压再复制到你想放的目录,以免复制过程中丢失一些文件

四、设置环境变量

   1. 创建一个.boto文件,文件内容为:
       [Boto]
       proxy=192.168.21.208
       proxy_port=808
       添加NO_AUTH_BOTO_CONFIG环境变量,值为.boto文件路径
   2. 环境变量Path添加depot_tools的目录,并放在Path最前面
   3.添加DEPOT_TOOLS_WIN_TOOLCHAIN环境变量,值为0,表示使用本机vs版本
   4. 添加vs2017_install环境变量,值为vs安装路径
   5. 添加GYP_MSVS_VERSION环境变量,值为vs的版本
   6. 添加GYP_GENERATORS环境变量,值为编译工具: 	msvs-ninja,ninja
   7. 添加GYP_MSVS_OVERRIDE_PATH环境变量,值为vs安装路径
   8. 添加https_proxy、http_proxy环境变量,值为网络代理

在这里插入图片描述
在这里插入图片描述

五、执行gclient

1、终端执行指令

打开终端cmd,切换到depot_tools所在路径,执行gclient,下图表示执行成功
在这里插入图片描述

2、确认python.bat

输入where python 并确认python.bat位于python.exe的任何副本之前
在这里插入图片描述

3、 安装pywin32

因为现在python下载的时候不会自动下载pywin32,所以要手动给depot_tools中的python安装pywin32。

cmd在\depot_tools\bootstrap-3_8_0_chromium_8_bin\python\bin目录下执行

$ python -m pip install pywin32

在这里插入图片描述

六、下载webrtc

1、 新建文件夹webrtc

$ mkdir webrtc
$ cd webrtc

2、 获取webrtc源码

需要很久,比如我用了六个多小时

$ fetch --nohooks webrtc

3、更新源码对应的依赖库

$ gclient sync

到此已经能下载好了最新版webrtc,如果需要使用webrtc以前的版本则执行以下步骤

4、查看webrtc所有版本

$ git branch -a 

在这里插入图片描述

5、checkout我们需要的旧版本

   $ git checkout remotes/branch-heads/72

6、更新旧版本相对应的依赖库

   $ gclient sync --with_branch_heads

在这里插入图片描述

七、编译webrtc

1、生成vs工程和ninja解决方案

$ gn gen ../debug --ide=vs --args="is_clang=false is_debug=true enable_iterator_debugging=true"//debug版本
$ gn gen ../release --ide=vs --args="is_clang=false is_debug=false"//release版本

在这里插入图片描述
执行成功可以在webrtc/debug目录下看到all.sln工程
在这里插入图片描述

2、编译ninja工程

$ ninja -C ../debug     //debug版本
$ ninja -C ../release    //release版本

在这里插入图片描述

八、编译过程中遇到的问题

1、checkout旧版本未更新依赖

在checkout到旧版本以后没有更新旧版本相对应的依赖库,使用gn生成工程文件的时候会报错 : Unsupported value in libs 或 Undefined identifier
在这里插入图片描述

解决方法:checkout后执行gclient sync --with_branch_heads

$ git checkout remotes/branch-heads/72
$ gclient sync --with_branch_heads

2、更新旧版本相对应的依赖库时,报错KeyError: ’2019’

在这里插入图片描述

这是因为我之前安装的时vs2019,但是我的checkout的webrtc旧版本还不能支持vs2019

解决方法:安装vs2017,注意安装完以后环境变量中与vs有关的要将vs2019改成vs2017

3、gn生成工程时报错:

Traceback (most recent call last):                                                                                                                                
File "C:/work/lib/webrtc/src/build/vs_toolchain.py", line 542, in <module>                                  
sys.exit(main())                                                                                                                                                                          
File "C:/work/lib/webrtc/src/build/vs_toolchain.py", line 538, in main                                                   
return commands[sys.argv[1]](*sys.argv[2:])         
File "C:/work/lib/webrtc/src/build/vs_toolchain.py", line 358, in CopyDlls                                                            
_CopyRuntime(target_dir, runtime_dir, target_cpu, debug=False)                                        
File "C:/work/lib/webrtc/src/build/vs_toolchain.py", line 333, in _CopyRuntime                         
suffix)                                                                                                                                                                                    
File "C:/work/lib/webrtc/src/build/vs_toolchain.py", line 221, in _CopyUCRTRuntime                                     assert len(ucrt_files) > 0                                                                                                                                                               
AssertionError                                                                                                                                                                               
ERROR at //build/toolchain/win/BUILD.gn:50:3: Script returned non-zero exit code.                                         exec_script("../../vs_toolchain.py",                                                                                                                          
^----------                                                                                                                                                                                
Current dir: C:/work/lib/webrtc/debug/ 
Command: C:/work/lib/depot_tools/bootstrap-3_8_0_chromium_8_bin/python/bin/python.exe C:/work/lib/webrtc/src/build/vs_toolchain.py copy_dlls C:/work/lib/webrtc/debug Debug x64
Returned 1 and printed out:
Copying C:\WINDOWS\System32\msvcp140.dll to C:/work/lib/webrtc/debug\msvcp140.dll...
Copying C:\WINDOWS\System32\vccorlib140.dll to C:/work/lib/webrtc/debug\vccorlib140.dll...
Copying C:\WINDOWS\System32\vcruntime140.dll to C:/work/lib/webrtc/debug\vcruntime140.dll...
See //BUILD.gn:29:3: which caused the file to be included.
  group("default") {
  ^-----------------

在这里插入图片描述

报错原因是,获取win10-SDK中的DLLs文件夹时路径不对,我们默认安装的win10-SDK的DLLs路径为:C:\Program Files (x86)\Windows Kits\10\Redist\10.0.19041.0\ucrt\DLLs…
但是webrtc的src\build\vs_toolchain.py文件中sdk-DLLs的导入目录为:
C:\Program Files (x86)\Windows Kits\10\Redist\ucrt\DLLs,所以编译时会报错

解决方法:将C:\Program Files (x86)\Windows Kits\10\Redist\10.0.19041.0\ucrt文件夹复制到C:\Program Files (x86)\Windows Kits\10\Redist目录下,如上面2.3

4、编译ninja工程时出错:

ninja: Entering directory `../debug'                                                                                                                                           
[755/4236] COPY ../src/modules/audio_processing/test/py_quality_assessment/apm_configs/default.json py_quality_assessment/apm_configs/default.json                                
FAILED: py_quality_assessment/apm_configs/default.json                                                                                           C:/work/lib/depot_tools/bootstrap-3_8_0_chromium_8_bin/python/bin/python.exe ../src/build/toolchain/win/tool_wrapper.py recursive-mirror ../src/modules/audio_processing/test/py_quality_assessment/apm_configs/default.json py_quality_assessment/apm_configs/default.json                                                                                         
Traceback (most recent call last):                                                                                                                                                 
File "../src/build/toolchain/win/tool_wrapper.py", line 29, in <module>                                                       
import win32file    # pylint: disable=import-error                                                                                                                 
ImportError: No module named win32file                                                                                                                                            [757/4236] CXX obj/modules/audio_processing/test/conversational_speech/unittest/generator_unittest.obj                      ninja: build stopped: subcommand failed.

在这里插入图片描述

出错原因:现在python下载的时候不会自动下载pywin32,所以要手动给depot_tools中的python下载pywin32。
解决方法:
cmd在\depot_tools\bootstrap-3_8_0_chromium_8_bin\python\bin目录下执行,如上面5.3

$ python -m pip install pywin32

5、fetch –nohooks webrtc时报错

在这里插入图片描述

解决办法:设置DEPOT_TOOLS_UPDATE环境变量,值为0。(这个错误出现的原因可能时写代理时候写错了端口,是192.168.21.208:808,所以这个解决办法只是在下载webrtc源码时候不再更新depot_tools,不是根本的解决办法)

6、 gclient sync同步webrtc源码时候出错

Boto proxy host: “http://192.168.21.208” differs from https_proxy proxy host: “192.168.21.208”
You have PROXY values set in your environment, but gsutil in depot_tools does not (yet) obey them.
在这里插入图片描述

解决方法是在同步源码之前应该手动创建.boto文件,文件内容为
[Boto]
proxy=192.168.21.208
proxy_port=808
再设置环境变量:NO_AUTH_BOTO_CONFIG=.boto文件的路径

7、vs导入webrtc.lib出错

因为我的项目中需要使用webrtc.lib库,所以我在CMakeLists.txt文件中添加了这个库,用vs打开我的工程,显示导入webrtc.lib库错误:

导入C:\work\lib\webrtc\debug\obj\webrtc.lib无效或损坏的文件

解决办法:下载完webrtc源码使用gn生成工程时候,添加 is_clang=false

8、检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“2”不匹配值“0”

vs编译项目时报错:检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“2”不匹配值“0”

解决方法:

编译debug版本webrtc时还要加上参数:enable_iterator_debugging=true

$ gn gen ../debug-c --ide=vs --args="is_clang=false is_debug=true enable_iterator_debugging=true"

9、未知特性 “no_init_all”

vs项目编译时报错:未知特性 “no_init_all”

解决办法:修改C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt文件

#if (_MSC_VER >= 1915)
#pragma warning(disable:4845)   // __declspec(no_init_all) used but d1initall not set
#endif

之后添加:

#if (_MSC_VER >= 1915)
#define no_init_all deprecated
#endif

10、vs编译webrtc的protocol模块出错

在这里插入图片描述
点击中止后
在这里插入图片描述
解决办法:我使用的是webrtc-72版本,该版本源码中protobuf模块用vs编译出错,最新版本的webrtc里面protobuf模块已经该过了,为了成功编译webrtc-72版,需要修改以下源码中protobuf模块,参考

https://github.com/acozzette/protobuf/commit/a9abc7831e45257d334cfa682746b6cadf9e95d9

20210511修改:
添加我的webrtc源码下载目录:
https://download.csdn.net/download/qq_34214088/18581073?spm=1001.2014.3001.5503

20210629更新

protobuf模块除了上面链接中的更改,还有一个地方需要更改

E:\zhx\lib\webrtc\src\third_party\protobuf\src\google\protobuf\message_lite.cc文件中将GetEmptyString函数注释掉,如下

/* const ::std::string& GetEmptyString() {
  ::google::protobuf::GoogleOnceInit(&empty_string_once_init_, &InitEmptyString);
  return GetEmptyStringAlreadyInited();
} */
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

win10下载编译webrtc源码 的相关文章

  • Android WebRTC 中的本地视频渲染器

    我正在使用这个库 https bintray com google webrtc google webrtc https bintray com google webrtc google webrtc 我想要实现的目标 至少在我的项目开始时
  • iOS 和 Safari 11 WebRTC 不收集 STUN/TURN Trickle ICE 候选者

    在 iOS 11 iPhone 5s 和 iPhone 7 或桌面上使用 Safari 11 时 我的 Web 应用程序无法通过 CoTURN 服务器收集 WebRTC 中继 ICE 候选项 Web 应用程序 建立单向音频 WebRTC 对
  • webRTC - 视频导致互联网上的通话中断

    更新1 我尝试像这样改变视频约束 var mediaConstraints audio true We want an audio track video width min 160 ideal 320 max 640 height min
  • 使用 django 通道将 webRTC 视频流发送到服务器

    我正在尝试创建一个用 django 编写的人脸检测 Web 应用程序 该应用程序是这样工作的 用户导航到该 url 相机在客户端计算机上启动 然后将每一帧发送到服务器进行人脸检测 然后将处理后的帧显示在网页上 我知道我无法使用 opencv
  • 通过 Websocket 传输视频

    我正在尝试构建可以从双方传输视频的移动应用程序 即视频通话之类的东西 我研究了 webrtc 但这还没有为移动本机应用程序做好准备 无论如何 webrtc 正在做的是允许浏览器直接捕获相机和音频而不需要插件等 但在本机移动应用程序中捕获相机
  • RecordRTC:Ondataavailable 被调用两次。只有第一个文件正确,其他文件已损坏或太小[重复]

    这个问题在这里已经有答案了 我想以2秒的间隔记录本地和远程流并用Ajax上传到服务器 但问题是 ondataavailable 方法被调用了两次 因此同一个视频被上传到服务器两次 第一个视频可以正常播放 而其余视频要么已损坏 要么非常小 不
  • 移动浏览器将以及何时支持 getUserMedia?

    我使用 前沿 HTML5 WebRTC API 编写了一个 Web 应用程序 请参阅下面的代码 这适用于 Chrome v20 启用了 MediaStream 标志 和最新的 FF Nightly 版本 17 0a1 创建了 media n
  • 我可以在 DTLS-SRTP 加密中指定自己的加密密钥吗

    在 Chrome 中的 webrtc Web 应用程序中 我曾经通过覆盖 SDP 中的加密信息来指定自己的加密密钥 我现在正在迁移我的 webrtc Web 应用程序以使用 DTLS SRTP 进行加密 启用 DTLS 后 有没有办法告诉
  • 是否可以从具有跨源数据的元素中捕获?

    我在 webRTC 文档中找到了这个简单的脚本 我尝试运行它 但似乎我遗漏了一些东西 const leftVideo document getElementById leftVideo const rightVideo document g
  • Libsourcey 缺少 -fPIC 编译错误

    我正在尝试运行 LibSourcey 以使用 Webrtc 流服务器 问题是我似乎无法让它发挥作用 我努力在我的 Ubuntu 16 04 上 cmake 该项目 cmake 文件中的正则表达式 但现在它已修复 我实际上遇到的问题是编译时的
  • 如何在 Android webRTC 上启用 H264

    如何在 Android WebRTC 上启用 H264 PeerConnection to createOfferSDP中没有h264描述 由于某种原因 Google 默认会阻止他们自己的软件编解码器 因此 如果您的芯片组中没有硬件解码 或
  • 为什么turn服务器不支持tcp连接?

    我是 WebRTC 新手 我需要为我的 webrtc 应用程序配置我自己的 Turn 服务器 我使用以下命令安装了我的转弯服务器 apt get install coturn 我只需要通过 tcp 运行转变服务器 它不必使用 UDP 进行任
  • MediaStream 未处理的承诺拒绝:[object DOMError](在 Safari 11 中)

    在下面初始化 WebRTC 的方法中 我在 Safari Tech Preview 11 中遇到了未处理的承诺拒绝 具体来说 当我分配MediaStream像这样的视频元素 video srcObject event stream 堆栈跟踪
  • 通过 Websockets 进行 WebRTC 视频聊天

    我正在尝试使用 webRTC 和 WebSockets 进行信号发送来开发视频聊天应用程序 我的问题是 我不知道创建 RTCPeerConnection 并通过 webSocket 连接两个对等点 2 个浏览器 的过程是什么 至少在本地 我
  • WebRTC、getDisplayMedia() 不捕获远程流中的声音

    我有一个自己的网络应用程序 它基于peerjs库 它是一个视频会议 我正在尝试使用 MediaRecorder 进行录制 但我遇到了一个非常不愉快的情况 捕获我的桌面流的代码如下 let chooseScreen document quer
  • 使用webrtc时可以关闭SRTP吗

    现在我测试webrtc与SIP客户端 sx20 的通信 我使用 webrtc sdp 发送邀请消息 但 sip 客户端答案没有指纹 并且 sip 客户端的答案不是 SRTP 只是 RTP 所以我需要关闭WEBRTC中的SRTP 我可以做吗
  • WebRTC - 消除/减少共享视频流的设备之间的延迟?

    我很抱歉没有发布任何代码 但我正在尝试了解更多有关延迟和webRTC 最好的方法是什么remove latency between two or more devices that are sharing a video stream 或者
  • WebRTC/getUserMedia:如何正确静音本地视频?

    我正在尝试实现将本地视频静音的功能MediaStreamTrack在我的 WebRTC 应用程序中 我是这样处理的 function muteVideo if this localStream this localStream getVid
  • Node.js 中的 webRTC

    我想在node js 中使用webRTC 来管理涉及浏览器和nodejs 上的对等点的混合连接 我做了一些测试和搜索 我尝试使用wrtc https github com js platform node webrtc or webrtc
  • iOS SWIFT - WebRTC 从前置摄像头更改为后置摄像头

    WebRTC 视频默认使用前置摄像头 效果很好 但是 我需要将其切换到后置摄像头 但我无法找到任何代码来执行此操作 我需要编辑哪一部分 是 localView 或 localVideoTrack 还是捕获器 斯威夫特3 0 对等连接只能有一

随机推荐

  • gitee将本地项目更新到远程仓库指定的分支上

    1 首先看自己在哪个分支 git branch a 2 然后将代码放到暂存区 git add 3 然后git commit m 提交 到本地库 git commit m 问卷管理 4 然后git pull origin jieer 5 gi
  • shell调试技术

    1 shell调试选项 语法 sh n x v Sctipt sh 参数说明 n 检查shell脚本是否有语法错误 只读取shell脚本 但不执行 x 提供跟踪执行信息 将执行的每一条命令 每一个变量的值和结果一次打印出来 v 一边执行脚本
  • 什么是死区时间

    死区时间是PWM输出时 为了使H桥或半H桥的上下管不会因为开关的关断延迟问题发生同时导通而设置的一个保护时段 通常也指pwm响应时间 由于IGBT 绝缘栅极型功率管 等功率器件都存在一定的结电容 所以会造成器件导通关断的延迟现象 一般在设计
  • 【华为机试真题 Python】@分割可用字符集

    前言 本专栏针对华为OD机试题目进行了详细的分析与解答 并包含完整的代码实现 希望可以帮助到正在努力的你 关于OD机试流程 面经 面试指导等 如有任何疑问 欢迎联系我 wechat steven moda email nansun0903
  • 入门嵌入式,开发板应该怎么选?

    作者 学益得智能硬件 入门嵌入式 开发板应该怎么选择 网上推荐的太多 不知道该如何选择 选择开发板 无非考虑三点因素 配套学习资源 源码 视频 书籍 性能 能不能运行学习用到的程序 性价比 价格是不是超出了预算 下面给大家推荐几款主流的能跑
  • C++学习笔记5:继承、多态基础

    组合 继承 继承与组合 构造与析构顺序 派生类重载基类函数的访问 多态性 虚函数 纯虚函数和抽象基类 多重继承 派生类成员的标识与访问 组合 继承与多态性 面向对象涉及的重要目的之一就是代码重用 多态性可以以常规方式书写程序来访问多种现有的
  • ScheduledExecutorService执行定时任务

    java util concurrent Executors可创建一个线程池 它可给定延迟后定期地执行任务 Executors newScheduledThreadPool int corePoolSize ThreadFactory th
  • 对12306新验证码的简单破解

    12306的验证码又换了 变成了类似找你妹的找图游戏了 由于在另一博客发过了 这里贴个地址过来 http www cnblogs com gsls200808 p 4341599 html 后记 在网站更新验证码的第二天 有人在知乎上问了
  • 127.0.0.1可以访问,localhost不能访问的问题

    二者概念 localhost 本地服务器 127 0 0 1 本机地址 本机服务器 二者区别 localhot 是不经网卡传输的 它不受网络防火墙和网卡相关的的限制 127 0 0 1 是通过网卡传输的 它依赖网卡 并受到网络防火墙和网卡相
  • 深度学习常用库汇总简介

    1 FlatBuffer
  • 【C语言】图的邻接表——超详细解析

    图的邻接表 我们重点分析一下无向图 邻接表 我们如何将图中所有顶点和边建立起联系 1 我们发现 V0这个顶点与V1和V3相连 通过右边的邻接表可以看到会出现一个以 V0为头结点的单链表 后面连接的元素就是V1和V3 在顶点数组中的下标 2
  • 【LeetCode】思维向题笔记总结(持续更新)

    不全 记录的都是个人认为比较有意思的题 具体有哪些题可以看看目录 目录 链表相关 双指针 滑动窗口 209 长度最小的子数组 滑动窗口 904 水果成篮 滑动窗口 哈希 模拟相关 59 螺旋矩阵 II 哈希表 哈希表概述 1 两数之和 哈希
  • 全国首款支持多环境开发的 IDE —— CEC-IDE

    有热心开发者在 VS Code 的 GitHub repo 创建了 issue CEC IDE 是一款安全 专业且功能强大的集成开发工具 主页 https www jlht168 com 插件市场 https cecide digitalg
  • 实验九—基本统计分析(二)

    实验9 基本统计分析 二 实验目的 通过综合案例 使学生掌握基本统计分析的各种指标的 掌握统计分析结果的可视化方法 实验内容 1 背景介绍 Consolidated食品公司在新墨西哥州 亚利桑那州和加利福尼亚州经营连锁超市 它举办了一个促销
  • 推荐VSC中一款好用的插件------Code Runner插件

    推荐VSC中一款好用的插件 Code Runner插件 Code Runner插件非常好用 可以运行的语言有 Run C C Java JS PHP Python Perl Ruby Go Lua Groovy PowerShell CMD
  • 软件系统工具-架构师真题(六)

    不属于可修改性考虑的内容 2016 可维护性 可扩展性 结构重构 可变性 答案 D 解析 可修改性指快速较高的性能价格进行系统优化 包括可维护性 可扩展性 结构重组和可移植性四个方面 软件系统工具中 软件评价工具属于 逆向工程工具 开发信息
  • Qt 帮助框架简介

    概述 Qt帮助系统包括生成和查看Qt帮助文件的工具 此外 它还提供了以编程方式访问帮助内容的类 以便能够将在线帮助集成到Qt应用程序中 实际的帮助数据 也就是目录 索引关键字或HTML文档 都包含在Qt压缩帮助文件中 所以 一个这样的帮助文
  • ssm美食论坛系统毕业设计源码191023

    目 录 摘要 1 绪论 1 1 研究背景及意义 1 2开发现状 1 3论文结构与章节安排 2 美食论坛系统系统分析 2 1 可行性分析 2 2 系统流程分析 2 2 1 数据流程 3 3 2 业务流程 2 3 系统功能分析 2 3 1数据增
  • vue 使用fs_node.js 中的 fs 模块的使用

    let fs require fs 检测是文件还是目录 名字 回调函数 fs stat package json err data gt if err console log err return console log 是文件 data
  • win10下载编译webrtc源码

    win10系统下载编译webrtc源码 一 下载安装VS2017 目前最新版本的webrtc已经可以用Vs2019 但是因为我们要使用的webrtc版本是以前的版本 旧版webrtc源码中vs toolchain py中指定了vs2017