Windows11/Win10+VS2019下载编译WebRTC源码

前言

1.目前webrtc支持vs2017 vs2019 vs2022版本
(由于下载的是vs2022放在了D盘,但是webrtc中有些编译文件将vs的路径写死,所以重新下载了vs2019版本放在了C盘默认路径,避免一些奇奇怪怪的错误)
2.下载全过程需要科学上网(这一点很重要,大部分错误都是由于网络状况导致某个文件没有下载)
3.安装Python2.7 Git等基础工具并配置(将Python27作为默认,Python3版本可能会出错)
4.系统要求:
(1)具有至少 8GB RAM 的 64 位 Intel 机器,建议超过 16GB
(2)NTFS 格式的硬盘驱动器上至少有 100GB 的可用磁盘空间(至少50GB)
(3)win10及以上版本

1.设置代理

  1. 打开cmd命令行
set http_proxy=127.0.0.1:15732 //端口号可以查看上网软件的代理端口号
set https_proxy=127.0.0.1:15732 //cmd命令行窗口关闭后需要重新设置 或者写死在系统变量

2.下载depot_tools工具

  1. 下载depot_tools工具并解压。(例如F:\depot_tools)

  2. 打开“查看高级系统设置”点击“环境变量”,点击“编辑”修改系统变量PATH, 加入depot_tools的路径,并且上移到最顶(至少在git和python前,否则导致gn过度构建)

  3. 打开cmd.exe运行

gclient 
//在第一次运行时,gclient 将安装使用代码所需的所有 Windows 定位,包括 msysgit 和 python
//如果从非 cmd shell(例如,cygwin、PowerShell)运行 gclient,可能看起来运行正常,但 msysgit、python 和其他工具可能无法正确安装
  1. 新建系统变量
set DEPOT_TOOLS_WIN_TOOLCHAIN = 0 //depot_tools使用本机vs编译

3.下载VS2019和Windows SDK

  1. 下载vs2019或者vs2022版本(最好按照默认路径安装在C盘)
    如果删除旧版本,重新安装,路径无法变成默认路径则:
    win+R 输入 regedit 打开注册表
    路径:计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\Setup
    删除默认路径

  2. 勾选”使用C++的桌面开发“ ”使用C++的移动开发“ ”通用Windows平台开发“

  3. 在安装详细信息或者单个组件中,点击”使用C++的桌面开发“ (如果担心,这个目录下的组件可以全部下载)
    (1)勾选MFC和ATL
    (2)勾选Windows 11 SDK(10.0.22000.0) (适用Win11系统)
    (3)勾选Windows 10 SDK (10.0.20348.0) (编译过程中显示需要这个版本)
    (4)勾选Windows 10 SDK(10.0.19041.0)(目前win10教程中都是下载这个SDK)

  4. 打开 ”控制面板\程序\程序和功能“,点击各个版本Windows Software Development Kit 选择更改(change)-> change->next 勾选Debugging Tools for Windows 点击 Change

  5. 配置系统变量

set GYP_GENERATORS = msvs-ninja,ninja
set GYP_MSVS_OVERRIDE_PATH = C:\Program Files (x86)\Microsoft Visual Studio\2019\Community
set GYP_MSVS_VERSION = 2019
set vs2019_install = C:\Program Files (x86)\Microsoft Visual Studio\2019\Community
set WINDOWSSDKDIR = D:\Windows Kits\10

4.获取WebRTC源码

  1. 拉取源码
fetch --nohooks webrtc
gclient sync //如果网络导致fetch中断,可以执行这一步继续获取源码
//网络状况良好fetch完成 也要执行gclient sync
//后续编译出错不成功,可以再次尝试gclient sync
  1. 构建
cd src
//生成debug版
gn gen --ide=vs out/Default //Default名称可以换 但必须是out目录
// 生成release版
gn gen --ide=vs out/Default --args="is_debug=false"
//--args可以指定多个参数 使用 gn help --args 可以显示详细信息
  1. 编译
ninja -C out/Default
//-C 告诉ninja到out/Default目录下编译

结尾

1.下载源码过程中参考了很多教程和chromium源码下载教程
2.过程中大部分出现error都是因为网络问题,如果不是想要提取webrtc中的某些模块进行开发,尽量不要改动里面的代码解决错误

你可能感兴趣的:(webrtc,实时音视频)