Webrtc+Windows10+VS2017 编译

本文详细介绍了在Windows10上使用VS2017编译WebRTC的步骤,包括环境配置、代码获取、编译过程、解决编译问题以及DEMO运行。重点讨论了如何处理RuntimeLibrary类型不匹配、PCM编码器报错以及H264编解码器的编译问题。
摘要由CSDN通过智能技术生成

一、环境及代码获取

1、本机系统环境

系统:Windows Server 2016,Windows10(代码及编译消耗巨大,采用云端服务器编译)
VS版本:VS2017 15.9.38(建议保持这个版本及以上版本)
代码版本: 分支4103 commit 3ed9687558f4fd0271adf5836d4a029df858dc43 6/28/2020
PYTHON: 2.7.17
语言区域:美国英语(系统及IDE都设为英文)

2、代码获取

(1)安装depot_tools工具包

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

(2)设置一下环境变量
DEPOT_TOOLS_WIN_TOOLCHAIN=0
GYP_GENERATORS=msvs-ninja,ninja
GYP_MSVS_VERSION=2017
PATH添加G:\depot_tools在最前面

(3)获取代码

fetch --nohooks webrtc

如果中途断网:

gclient sync

(4)切换分支

git checkout -b (随便命名) refs/remotes/branch-heads/(指定版本号)
gclient sync -D

二、编译

1、将运行时库由MT改为MD(可选,编SDK建议做这一步)

Windows默认不支持is_component_build设置

手动将src/build/config/win/build.gn改为以下内容

config("default_crt") {
  if (is_component_build) {
    # Component mode: dynamic CRT. Since the library is shared, it requires
    # exceptions or will give errors about things not matching, so keep
    # exceptions on.
    configs = [ ":dynamic_crt" ]
  } else {
    if (current_os == "winuwp") {
      # https://blogs.msdn.microsoft.com/vcblog/2014/06/10/the-great-c-runtime-crt-refactoring/
      # contains a details explanation of what is happening with the Windows
      # CRT in Visual Studio releases related to Windows store applications.
      configs = [ ":dynamic_crt" ]
    } else {
      # Desktop Windows: static CRT.
      configs = [ ":`dynamic_crt`" ]
    }
  }
}

或者

config("static_crt") {
 if (is_debug) {
   # This pulls in the static debug CRT and defines _DEBUG
   cflags = [ `"/MDd" `]
 } else {
   cflags = [ `"/MD"` ]
 }
}

参考https://blog.csdn.net/haowei0926/article/details/78530560

2、在构建目录out\debug 新建args.gn,填入以下内容

is_debug = true // release is_debug=false
rtc_enable_protobuf = false
target_cpu = “x86” // 64bit target_cpu = “x64”
target_os = “win”
is_clang = false
libyuv_include_tests = false
rtc_include_tests = false
rtc_use_h264 = true
is_component_ffmpeg=true
enable_iterator_debugging=true

3、生成工程
32bit
gn args out1/Debug --ide=vs2017 --winsdk=10.0.19041.0
gn args out1/Release --ide=vs2017 --winsdk=10.0.19041.0

64bit
gn arg
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值