这是我半年多前跟的一个小项目了,是为了改webrtc里面的拥塞控制模块做的。
编译过程非常非常折腾,毕竟这是个连官网都需要翻墙上的开源项目。整理了一下自己的编译过程,亲测有效。如果各位看官有需要,可以问我要已经编译好的代码,我之前只做了Windows和Android版的编译,IOS的爱莫能助了。
下文就是针对Android版的代码下载和编译命令。
******在继续看下文之前,大家首先保证自己有一个稳定且速度可靠的VPN******
******最好的是直接租个海外云服务器,我就是用的阿里VPS******
#下列代码适用于从官网下载并编译Android版native code
#前置环境安装:
sudo apt-get install openjdk-7-jre openjdk-7-jdk
sudo apt-get install g++ (>= 4.2) Python (>= 2.4) libnss3-dev >= 3.12 libasound2-dev libpulse-dev libjpeg62-dev libxv-dev libgtk2.0-dev libexpat1-dev
#安装2.7+版本的git:
sudo apt-get install software-properties-common
sudo add-apt-repository ppa:git-core/ppa
sudo apt-get update
sudo apt-get install git
#WebRTC相关的开始了:
#安装depot_tools:
git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
#加入环境变量中:
gedit ~/.bashrc
export PATH="$PATH":home/xxx/depot_tools #"$PATH"根据路径可以更改
#搞完之后注销一下,再愉快地登陆并打开终端,输入 gclient进行测试。成功的话会有一陀指令说明显示出来
#设定操作系统
export GYP_DEFINES="OS=android"
#创建目录:
mkdir webrtc
cd webrtc
#cd到目录下然后取代码:
fetch --nohooks webrtc_android
gclient sync
#第一次gclient sync可能出错,可以参考以下方法:
#需要安装相适应的环境,在第一次gclient sync失败后执行./build/install-build-deps.sh
#或者大家参考几位前人的经验
#https://github.com/v8mips/v8mips/issues/332
#http://blog.csdn.net/saviourxx/article/details/9424307
#重新执行gclient sync
#中间若中断,需要执行一次:src/setup_links.py --force
#安装编译需要的东西:
src/build/install-build-deps-android.sh
#使用绑定的SDK:
source ./build/android/envsetup.sh
#gclient sync成功后,证明代码已经完全下载好,开始编译:
#cd到 /src:
gn gen out/Default --args='target_os="android" target_cpu="arm64"'(CPU changes for necessary)
ninja -C out/Default