ubuntu环境下编译webrtc

PS:第一次使用的腾讯云的北京区域的云服务器,各种报错以及无法连接相关资源,最后花了32买了个香港区域的轻应用服务器+60G的硬盘,按照下面的流程,终于很流畅的完成了编译

一、安装depot_tools

1、下载depot_tools

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

2、配置环境变量

vim ~/.bashrc
export depot_tools=/root/terry/webrtc/tools/depot_tools
export PATH=$depot_tools:$PATH
source ~/.bashrc

3、执行gclient

gclient

在这里插入图片描述

二、获取源码

1、下载源码

mkdir webrtc_android
cd webrtc_android
fetch --nohooks webrtc_android

在这里插入图片描述
同步完成以后,会产生src目录
在这里插入图片描述
2、gclient同步

gclient sync

在这里插入图片描述
在这里插入图片描述

三、使用GN生成项目

cd src
gn gen out/release --args='target_os="android" target_cpu="arm"'

在这里插入图片描述

  • To build for ARM64: use target_cpu=“arm64”
  • To build for 32-bit x86: use target_cpu=“x86”
  • To build for 64-bit x64: use target_cpu=“x64”

四、依赖安装

./build/install-build-deps.sh
./build/install-build-deps-android.sh

在这里插入图片描述

五、开始编译

autoninja -C out/release

第一次,编译失败,报错如下:
ModuleNotFoundError: No module named ‘dataclasses’
在这里插入图片描述
解决方案:
安装 dataclasses

pip3 install dataclasses (python3)
pip install dataclasses (python2)

再次编译,依然失败,报错如下:
在这里插入图片描述
各种搜索,大概就是说python的版本不对,然后安装了python3.6的,依然不行。群友说使用ubuntu20.0.4版本搭配python3.6使用,成功编译通过,然后把云服务器的系统镜像由18换成20.0.4。重新走了一趟编译流程,历时四个小时,终于,成功编译。
在这里插入图片描述
在这里插入图片描述

六、jni源码的头文件

所在的路径为:

webrtc_android/src/out/release/gen/sdk/android

在这里插入图片描述
PS:该截图是我从云服务器下载到本地后windows上打开的

七、jni源码对应的实现.cc文件

所在路径:

webrtc_android/src/sdk/android/src/jni

在这里插入图片描述

PS:编译源码,环境很重要,此次编译环境如下:
云服务器:腾讯云轻应用服务器
服务器区域:香港
服务器系统镜像:ubuntu20.0.4


版权声明:本文为u011557841原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。