Windows下WebRTC编译

鉴于WebRTC更新速度较快且在编译过程中遇到了一些问题,故将此次编译过程在网上相关教程的基础之上进行了以下记录。

WebRTC版本:

环境要求

  • Windows 10 64位系统
  • Visual Studio 2019

Visual Studio修改

        打开VS Installer,点击修改,勾选如下选项进行下载:

 

安装SDK调试工具

  • 打开控制面板->程序与功能,找到刚才安装的最新Windows Software Development Kit,选择change。

  • 勾选Debugging Tools For Windows,之后点击change。

depot_tools安装

     depot_tools和webrtc的拉取默认使用者会科学工具)

  1. 创建好相关depot_tools目录,之后:

    cd depot_tools
    git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
  2. 配置环境变量,将depot_tools目录添加到Path,并移动到最上面。

    

 

由于公司的网络环境,depot_tools和webrtc的拉取并不需要相关镜像。(先后反复尝试过声网和学而思网校的镜像后得出的结论……)

获取WebRTC源码

在创建好相关目录之后,进行如下操作:

cd webrtc
gclient config --name src https://chromium.googlesource.com/external/webrtc.git

fetch --nohooks webrtc

gclient sync

拉取和同步所需的时间较长。

编译

  1. 设置VS编译的环境变量

    set GYP_MSVS_VERSION=2019
    set GYP_MSVS_OVERRIDE_PATH=C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional
    set GYP_GENERATORS=msvs-ninja,ninja
  2. 设置使用本机VS进行编译

    set DEPOT_TOOLS_WIN_TOOLCHAIN=0
  3. 生成VS工程文件

    //进入webrtc/src文件夹
    cd src
    gn gen --ide=vs out/Default

    gn相关命令参数如下:

    GN optionally generates files for IDE. Possibilities for <ide options>
    
      --ide=<ide_name>
          Generate files for an IDE. Currently supported values:
          "eclipse" - Eclipse CDT settings file.
          "vs" - Visual Studio project/solution files.
                 (default Visual Studio version: 2017)
          "vs2013" - Visual Studio 2013 project/solution files.
          "vs2015" - Visual Studio 2015 project/solution files.
          "vs2017" - Visual Studio 2017 project/solution files.
          "vs2019" - Visual Studio 2019 project/solution files.
          "xcode" - Xcode workspace/solution files.
          "qtcreator" - QtCreator project files.
          "json" - JSON file containing target information
    
      --filters=<path_prefixes>
          Semicolon-separated list of label patterns used to limit the set of
          generated projects (see "gn help label_pattern"). Only matching targets
          and their dependencies will be included in the solution. Only used for
          Visual Studio, Xcode and JSON.
    
      --sln=<file_name>
          Override default sln file name ("all"). Solution file is written to the
          root build directory.
    
      --no-deps
          Don't include targets dependencies to the solution. Changes the way how
          --filters option works. Only directly matching targets are included.
    
      --winsdk=<sdk_version>
          Use the specified Windows 10 SDK version to generate project files.
          As an example, "10.0.15063.0" can be specified to use Creators Update SDK
          instead of the default one.
    
      --ninja-extra-args=<string>
          This string is passed without any quoting to the ninja invocation
          command-line. Can be used to configure ninja flags, like "-j".

    如果需要清理工程:

    gn clean out/Debug
  4. 编译

    ninja -C out/Default

遇到问题

    在生成VS工程文件时,产生了如下报错:

D:\webrtc\webrtc\src>gn gen --ide=vs2019 out/Default
Traceback (most recent call last):
  File "D:/webrtc/webrtc/src/build/toolchain/win/setup_toolchain.py", line 315, in <module>
    main()
  File "D:/webrtc/webrtc/src/build/toolchain/win/setup_toolchain.py", line 273, in main
    env = _LoadToolchainEnv(cpu, toolchain_root, win_sdk_path, target_store)
  File "D:/webrtc/webrtc/src/build/toolchain/win/setup_toolchain.py", line 189, in _LoadToolchainEnv
    return _ExtractImportantEnvironment(variables)
  File "D:/webrtc/webrtc/src/build/toolchain/win/setup_toolchain.py", line 67, in _ExtractImportantEnvironment
    raise Exception(
Exception: Path "C:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\shared" from environment variable "include" does not exist. Make sure the necessary SDK is installed.
ERROR at //build/toolchain/win/toolchain.gni:493:24: Script returned non-zero exit code.
  win_toolchain_data = exec_script("//build/toolchain/win/setup_toolchain.py",
                       ^----------
Current dir: D:/webrtc/webrtc/src/out/Default/
Command: D:/webrtc/depot_tools/bootstrap-2@3_8_10_chromium_23_bin/python3/bin/python3.exe D:/webrtc/webrtc/src/build/toolchain/win/setup_toolchain.py "C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional" "C:\Program Files (x86)\Windows Kits\10" "C:\Windows\System32;C:\Windows\SysWOW64;Arm64Unused" win x86 environment.x86
Returned 1.
See //build/toolchain/win/BUILD.gn:34:3: whence it was called.
  win_toolchains("x86") {
  ^-----------------------
See //BUILD.gn:39:3: which caused the file to be included.
  group("default") {
  ^------------------

        这里尝试了很多方法,最后才看懂可能由于webrtc版本问题需要10.0.22621.0的SDK。而VS2019中可以提供的只到10.0.22000.0,去Windows官网下载10.0.22621.0又显示不支持WIN10专业版,故最后在VS2022的修改中获得了10.0.22621.0的SDK并安装其SDK调试工具,才解决了此问题。


      

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值