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
相关推荐
lThE ANDE1 分钟前
最完整版Linux安装Redis(保姆教程)
linux·运维·redis
北漂Zachary3 小时前
四大编程语言终极对比
android·java·php·laravel
郝亚军3 小时前
ubuntu通过samba,让win11可以访问其共享文件夹
linux·服务器·ubuntu
一个人旅程~4 小时前
旧电脑的“拯救者”?Linux Mint20.3是怎样适配软件硬件以及兼顾兼容与性能的平衡的?
linux·经验分享·电脑
小夏子_riotous4 小时前
Docker学习路径——3、常用命令
linux·运维·服务器·学习·docker·容器·centos
其实防守也摸鱼5 小时前
无线网络安全---WLAN相关安全工具--kali(理论附题目)
linux·安全·web安全·学习笔记·kali·命令模式·wlan
uesowys6 小时前
CentOS Linux安装部署OpenClaw
linux·centos·安装部署openclaw
IMPYLH6 小时前
Linux 的 rm 命令
linux·运维·服务器·网络·bash
YIN_尹7 小时前
【Linux系统编程】进程地址空间
linux·c++
学习使我健康7 小时前
Android App 启动原理
android·android studio