webrtc源码编译【linux/安卓】

编译webrtc库

环境ubuntu22.04

推荐在linux里运行一个docker容器,在新环境里搭建。

准备工作

shell 复制代码
#我使用了下面的安装命令。目前知道的必须需要的 git python3 unzip ninja jdk file lsb-release
apt install -y git curl build-essential python3 python3-pip python3-setuptools python3-venv openjdk-8-jdk clang ninja-build libprotobuf-dev protobuf-compiler pkg-config libssl-dev libsdl2-dev libvpx-dev libx11-dev libxrandr-dev libxi-dev libglu1-mesa-dev  libcurl4-openssl-dev unzip lsb-release file
shell 复制代码
#梯子
#最好选择稳定一些的,流量会使用 20GB多
#查看代理 http://127.0.0.1:1234

#配置环境变量
export https_proxy=http://127.0.0.1:1234 http_proxy=http://127.0.0.1:1234 all_proxy=socks5://127.0.0.1:1234

#开启后 git配置http 和 https代理
git config --global http.proxy "http://127.0.0.1:1234"
git config --global https.proxy "http://127.0.0.1:1234"

#配置gsutil的代理  NO_AUTH_BOTO_CONFIG
vi proxy.boto #任意目录,假设在/home/abc 下
### 写入以下内容 start
[GSUtil]
proxy=127.0.0.1
proxy_port=1234
###

#设置到环境变量
export NO_AUTH_BOTO_CONFIG=/home/abc/proxy.boto

#注意  export设置的环境变量只在当前终端有效,但git的代理是全局有效
shell 复制代码
#充足的时间 至少三小时(大部分是等待时间)
#机器不要重启
#网络稳定的环境

安装depot_tools

谷歌官方的一个工具,用于拉取管理代码

shell 复制代码
cd /home/abc #找一个合适的位置
git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git

#设置环境变量。 这句也可以加到系统环境里 ~/.bashrc
export PATH=/home/abc/depot_tools:$PATH

拉取代码

shell 复制代码
#找一个合适的目录 至少有35GB空间
mkdir /home/abc/webrtc
#下载源码 和 第三方库源码20GB多
#一般执行时间较长
fetch --nohooks webrtc_android
#执行hooks 再下载一些东西
gclient sync

切换分支

拉取代码后,是最新的分支,我们可能需要以前的release分支

分支网站 可以访问这个网站查找对应的分支代码 比如m120就是6099

shell 复制代码
cd /home/abc/webrtc/src
git checkout -b m120 branch-heads/6099
gclient sync
#这里还会再下载一些东西,未统计流量,不算很多

安装依赖

源码里提供了脚本,可以一键安装依赖 (使用apt)

shell 复制代码
cd /home/abc/webrtc/src
#安装依赖
./build/install-build-deps.sh #可能会报错
#因为我是用的docker 容器,默认是root用户,py脚本里包含了 sudo ,会报错
#解决方法 vi ./build/install-build-deps.py
:%s/"sudo", //g
#输入上一行,回车。把sudo替换掉
#重新执行脚本

#m120 版本没有
#./build/install-build-deps-android.sh 


#编译脚本 -h 查看帮助
./tools_webrtc/android/build_aar.py -h
#编译 默认设置,会包含多个架构
./tools_webrtc/android/build_aar.py
相关推荐
chlk12315 小时前
Linux文件权限完全图解:读懂 ls -l 和 chmod 755 背后的秘密
linux·操作系统
阿巴斯甜15 小时前
Android 报错:Zip file '/Users/lyy/develop/repoAndroidLapp/l-app-android-ble/app/bu
android
舒一笑15 小时前
Ubuntu系统安装CodeX出现问题
linux·后端
Kapaseker16 小时前
实战 Compose 中的 IntrinsicSize
android·kotlin
改一下配置文件16 小时前
Ubuntu24.04安装NVIDIA驱动完整指南(含Secure Boot解决方案)
linux
xq952717 小时前
Andorid Google 登录接入文档
android
黄林晴18 小时前
告别 Modifier 地狱,Compose 样式系统要变天了
android·android jetpack
深紫色的三北六号1 天前
Linux 服务器磁盘扩容与目录迁移:rsync + bind mount 实现服务无感迁移(无需修改配置)
linux·扩容·服务迁移
SudosuBash1 天前
[CS:APP 3e] 关于对 第 12 章 读/写者的一点思考和题解 (作业 12.19,12.20,12.21)
linux·并发·操作系统(os)
冬奇Lab1 天前
Android触摸事件分发、手势识别与输入优化实战
android·源码阅读