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

ubuntu环境下编译webrtc_第1张图片

二、获取源码

1、下载源码

mkdir webrtc_android
cd webrtc_android
fetch --nohooks webrtc_android

ubuntu环境下编译webrtc_第2张图片
同步完成以后,会产生src目录
ubuntu环境下编译webrtc_第3张图片
2、gclient同步

gclient sync

ubuntu环境下编译webrtc_第4张图片
ubuntu环境下编译webrtc_第5张图片

三、使用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

ubuntu环境下编译webrtc_第6张图片

五、开始编译

autoninja -C out/release

第一次,编译失败,报错如下:
ModuleNotFoundError: No module named ‘dataclasses’
ubuntu环境下编译webrtc_第7张图片
解决方案:
安装 dataclasses

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

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

六、jni源码的头文件

所在的路径为:

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

ubuntu环境下编译webrtc_第11张图片
PS:该截图是我从云服务器下载到本地后windows上打开的

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

所在路径:

webrtc_android/src/sdk/android/src/jni

ubuntu环境下编译webrtc_第12张图片

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

你可能感兴趣的:(webrtc,android,ubuntu,webrtc,源码编译)