在Linux下如何搭建WebRTC的开发环境
本文主要记录笔者在 Gentoo Linux 下面搭建 WebRTC 开发环境的过程。
准备工作
- 网络:可以科学上网的梯子
- IDE:VSCode 或者 CLion
安装depot_tools
Google 有自己的一套用于管理 Chromium 项目的工具,名叫depot_tools
,其中有包括git
在内的一系列工具和脚本。

|
|
克隆完成之后需要将depot_tools
的路径加到PATH
中,Linux 上添加环境变量最简单的方式是修改~/.profile
,这种方式与你的登录 shell 是什么没有关系,不管是fish
还是bash
还是zsh
都会吃这种方式:
|
|
但是这种方式需要你注销重新登录。
克隆代码
|
|
整个 WebRTC 的项目代码大小约 20G,克隆过程中需要保证网络畅通顺畅,如果你的梯子有大流量专用节点最好,否则可能克隆完你的流量就用光了。
克隆期间可能会因为网络问题中断,重新执行gclient sync
即可,直到所有的模块都克隆完毕。
按照官方的建议,克隆完成之后创建自己的本地分支,因为官方分支更新很快,不 checkout 的话,可能你的 commit 还没写完,就被 Remote 的 change 给覆盖了,还要手动处理冲突。
|
|
编译 WebRTC
关于 WebRTC 的版本可以在Chromium Dash查到:

如上图所示,113 分支是当前的稳定分支,对应的 tag 是branch-heads/5672
:
|
|
创建本地分支之后就可以用gn
生成ninja
文件了:
|
|
这里使用了clang
并且启用了h264
,详细的gn
参数可以参考gn-build-configuration和项目根目录下的webrtc.gni
文件。
之后使用autoninja
进行编译,编译时会吃满你 PC 的所有核心,编译时间取决于你 PC 的配置:
|
|

可以看到默认生成了几个样例的可执行文件。

cd 到obj
目录下可以看到libwebrtc.a
文件,就是编译链接之后最终生成的可以引用的库文件。
搭建开发环境
Google 官方给出了 Chromium 项目的CLion 配置指南,所以只需要照猫画虎给 WebRTC 配置一下。
配置 CLion 属性
因为整个项目比较大,所以需要调大 CLion 的 VM 内存和 intellisence 支持的文件大小:
Help
-> Edit Custom VM Options
,在文件的末尾添加:
|
|
表示给 VM 设定8G
的可用内存,这样基本上不用担心使用过程因为内存不足而 CLion 性能不够了。
Help
->Edit Custom Properties
,在文件的末尾添加:
|
|
表示为大小为12500KB
也就是12M
以下的文件提供 intellisense 支持。
配置 gdb
|
|
之后在 CLion 中的Settings
->Toolchain
->Debugger
选择系统自带的 gdb:/usr/bin/gdb
即可。
配置 intellisense
因为 WebRTC 用的是gn
+ninja
作为构建工具,而CLion
目前只支持cmake
,所以当要求配置CMakeLists.txt
时直接无视即可。网络上有说用gn_to_cmake.py
这个脚本的,但是我没看懂这东西的功能,反正是不能生成CMakeLists.txt
,只是生成一个json
文件,并不能用于 CLion 的索引。
我这边成功开启 IDE 语法高亮和索引的姿势是这样的:
|
|
这一步会生成 CLion 可以自动识别的compile_commands.json
文件,从而可以正确索引项目的代码并提供代码补全功能。

之后每次启动项目 CLion 就会自动索引项目文件,就可以愉快地看代码和写代码啦!