webrtc编译笔记

一、科学上网

二、下载depot_tools

mkdir webrtc
cd webrtc
git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git

1、windows环境下,在系统变量中添加DEPOT_TOOLS_WIN_TOOLCHAIN,值为0。
该变量在depot_tools/win_toolchain/get_toolchain_if_necessary.py文件中使用,DEPOT_TOOLS_WIN_TOOLCHAIN=0将使用本地已安装的vs版本编译。

2、将depot_tools路径加入PATH变量,放在最前。

三、下载源码

mkdir webrtc-checkout
cd webrtc-checkout
fetch --nohooks webrtc
gclient sync

源码很大,下载时间看网络情况和网速而定,失败再次执行gclient sync。
ubuntu下还需要执行:

cd src
./build/install-build-deps.sh

来安装一些编译所需的依赖。

四、编译

1、windows下编译有一些准备工作,参考windows编译准备工作

2、建议使用m96分支,谷歌2021年最后一个稳定版本。
查看远端分支:

git branch -r

切换m96分支

git checkout -b m96 remotes/branch-heads/4664

3、生成构建文件build.ninja
windows环境下用cmd控制台,不要用powershell,然后在src\build\config\win\BUILD.gn文件中修改此处。

config("static_crt") {
  if (is_debug) {
    # This pulls in the DLL debug CRT and defines _DEBUG
    cflags = [ "/MDd" ]
    if (use_custom_libcxx) {
      ldflags = [ "/DEFAULTLIB:msvcprtd.lib" ]
    }
  } else {
    cflags = [ "/MD" ]
    if (use_custom_libcxx) {
      ldflags = [ "/DEFAULTLIB:msvcprt.lib" ]
    }
  }
}

将使用CRT动态连接。

windows环境下用clang编译,有可能会报"use_xcode_clang"参数未定义,在src/BUILD.gn文件中找到该变量,直接置换为false即可。

windows:

gn gen out/x64_debug_m96 --ide=vs --args="is_debug=true is_clang=true use_lld=false rtc_include_tests=false treat_warnings_as_errors=false use_custom_libcxx=false rtc_enable_protobuf=false use_rtti=true enable_iterator_debugging=true proprietary_codecs=true rtc_use_h264=true ffmpeg_branding=\"Chrome\"" 

ubuntu18.04:


gn gen out/x64_debug_m96 --args="is_debug=true is_clang=false use_lld=false rtc_include_tests=false treat_warnings_as_errors=false use_custom_libcxx=false  rtc_enable_protobuf=false use_rtti=true  proprietary_codecs=true rtc_use_h264=true ffmpeg_branding=\"Chrome\""

is_clang:windows环境下打开,为了支持h264编解码,需使用clang编译,ubuntu下gcc编译,关闭。
use_lld=false:不使用LLVM linker。
rtc_include_tests=false:不编译单元测试。
use_custom_libcxx=false:不使用libc++库,这是clang++默认使用的c++标准实现库。
use_rtti=true:使用c++ RTTI。
proprietary_codecs=true:使用有专利的编解码器,为了使用h264。
rtc_use_h264=true:为了使用h264。
ffmpeg_branding=“Chrome”:使用Google Chrome版本的ffmpeg,h264可以正常使用,还有ChromeOS和Chromium版本未尝试。

更多参数作用可使用该命令查看:

gn args out/x64_debug_m96 --list

4、编译

windows环境下,从vs2019 x64 Native Tools Command进入。

ninja -C out/x64_debug_m96

编译过程中可能有一些代码报错,修改即可。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值