安装 Depot_tools
- git 命令获取 depot_tools:
|
|
- 配置坏境变量
|
|
- 检测配置是否成功
|
|
安装 ninja
ninja 是 WebRTC 的编译工具,我们需要对其进行编译,步骤如下:
|
|
复制到系统目录(也可配置坏境变量)
|
|
下载源代码
WebRTC 源码托管在 Google Source ,在 Release Notes 中选择需要的版本,这里选择最新的 M57 版本
- 设置要编译的平台到环境变量中:
|
|
不同机型的编译参数:
|
|
- 创建工作路径并执行下面的语句:
|
|
上面的 commit id 是 M57 版本最后一次 commit id,可以从 Release Notes 中找到,可替换成自己所需的版本的 commit id 或者直接使用最新的 commit id
执行上述命令就会去下载对应的 WebRTC 的源码、构建工具链以及依赖的第三方库,由于是国外网站,并且是 Google,请自备梯子,我这边翻墙后大概 2 个小时就下完了源码。
编译库文件
iOS 版本的编译
ninja 是 WebRTC 的编译平台,iOS 版本我们可以使用自带的编译脚本,这样就不需要自己编译和安装 ninja,默认情况行,脚本会编译 3 个平台机型的库文件,以及一个各个平台的集合库,脚本也可以指定编译成 .a
的库文件或者 .framework
,命令如下:
|
|
不同的版本,编译脚本的路径会有不一样。编译完成后,如果没有指定输出路径,则会在 out_ios_libs
目录下生成所需要的 WebRTC.framework,子目录中会有对应平台单独的 WebRTC.framework,根目录下的则支持所有平台,目录结构如下:
|
|
Mac 版本的编译
下载源码:
|
|
Mac 没有现成的编译脚本,我们只能通过 gn
来生成对应的 ninja 编译脚本,然后通过 ninja 脚本来编译,用如下命令来生成对应的 ninja 项目文件:
|
|
可以添加 –ide=xcode 参数来生成 Xcode 的项目文件,使用 Xcode 来进行编译。
编译源码:
|
|
上述命令 out/mac_x64
则是 ninja 项目文件的路径,rtc_sdk_objc
则是要编译的目标,可以通过以下命令来查看目标列表:
|
|
其他平台源码下载
Windows
|
|
Linux
|
|
Windows 和 Linux 都使用 ./build/install-build-deps.sh
脚本进行编译即可。
Android
|
|
Android 使用 ./build/install-build-deps-android.sh
脚本进行编译。
生成 Example 并运行
执行以下命令,用于生成 ninja 的编译脚本 :
|
|
用以下命令可用来编译并生成可执行的二进制文件:
|
|
执行之后可在 out/mac_x64
目录生成可执行的 AppRTCMobile
文件,双击即可运行。效果如下图:
通过修改 --args='target_os="mac" target_cpu="x64"
参数来生成其他平台的 Example。