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
相关推荐
这儿有一堆花6 分钟前
Kali Linux 2025.1a:主题焕新与树莓派支持的深度解析
linux·运维·服务器
Kusunoki_D17 分钟前
使用 VIM 编辑器对文件进行编辑
linux·编辑器·vim
QING61838 分钟前
Kotlin Random.Default用法及代码示例
android·kotlin·源码阅读
QING61839 分钟前
Kotlin Byte.inc用法及代码示例
android·kotlin·源码阅读
QING61843 分钟前
Kotlin contentEquals用法及代码示例
android·kotlin·源码阅读
东方佑4 小时前
自动调整PPT文本框内容:防止溢出并智能截断文本
linux·运维·powerpoint
zhougl9965 小时前
html处理Base文件流
linux·前端·html
泥土编程6 小时前
kubekey -实现懒人一键部署K8S集群
linux·运维
wirepuller_king9 小时前
创建Linux虚拟环境并远程连接,finalshell自定义壁纸
linux·运维·服务器
每次的天空9 小时前
Android学习总结之算法篇四(字符串)
android·学习·算法