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
相关推荐
readhere6 小时前
从ZYNQ7000开发板,学会启动嵌入式Linux系统——入门学习:EBAZ4205篇目录
linux·启动·嵌入式linux·zynq7000·ebaz4205
独隅7 小时前
Claude API 实战教程:从入门到完整项目
android·java·数据库·claude·claude code
打工仔折腾 AI7 小时前
在 Ubuntu ARM64 部署 Q1 V3.0 MuJoCo 模型:加载、单步推理与执行器响应解析
linux·运维·人工智能·python·深度学习·ubuntu·性能优化
‎ദ്ദിᵔ.˛.ᵔ₎8 小时前
关于Linux 线程局部存储的认识
linux·运维
小小de风呀10 小时前
de风——【从零开始学习Linux】(九):进程基础 —— 从冯诺依曼体系到 fork 创建进程
linux·学习
且随疾风前行.11 小时前
Paint Cavans高级绘制:[一]Paint画笔高级应用
android·ui
晚风吹北巷12 小时前
Linux复习篇(自用)
linux·运维·服务器·1024程序员节
by2099912 小时前
Linux 压缩传输、进程查看与权限管理
linux·经验分享·1024程序员节
无足鸟ICT13 小时前
【RHCA+】reboot命令(重启)
linux·运维·服务器·1024程序员节