Ubuntu下载webrtc源码
一、Depot Tools安装
1、确定已安装git和python
Confirm git and python are installed. git 2.2.1+ recommended. python 2.7+ recommended.
**2、下载depot_tools **
$ git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
3、将depot_tools添加到PATH中:
个人建议将环境配置在etc/profile中
$ export PATH="$PATH:/path/to/depot_tools"
depot_tools中包括fetch、gclient和gn等工具,用于同步和编译代码。
二、获取代码
注:源码下载需翻墙
1、创建webrtc文件夹,用于存放代码
mkdir ~/webrtc
2、下载依赖的代码和编译依赖包
cd ~/webrtc
fetch --nohooks webrtc_android
fetch
完成会自动执行gclient sync
命令,中途下载失败或中断可继续执行gclient sync
同步代码。其中webrtc_android
是指android平台,这一步也可以选择其他平台如chromium、webrtc_ios
。
下载后若要增加其他平台可选择如下操作
$ echo "target_os = [ 'linux' ]" >> ../.gclient
3、同步代码
gclient sync
获取已知稳定的commit版本:
gclient sync -r src@3257b16156ee3065edbc722c6e215b58a8914ad2
3257b16156ee3065edbc722c6e215b58a8914ad2
是commit id。
注:获取代码这将是一个漫长的过程,视你的网络情况而定,好几个小时和一天不等,你能做的就只能慢慢等待。
三、进入src目录,编译代码
1、下载编译依赖包
./build/install-build-deps-android.sh //针对android项目,其他项目选择对应文件编译
./build/install-build-deps.sh
2、产生编译配置
gn gen out/Debug --args='target_os="android" target_cpu="arm"'
或
//输入命令
gn args out/Debug
//编辑
target_os="android"
target_cpu="arm"
gn配置参数参考:https://www.chromium.org/developers/gn-build-configuration
3、编译
ninja -C out/Debug
为了节约时间,没必要进行全编译,如对于android可以选择:
ninja -C out/Debug AppRTCMobile
如果编译出现问题,可执行gclient runhooks
,参考文档:https://chromium.googlesource.com/chromium/src/+/master/docs/linux_build_instructions.md
4、产生Android Studio编译配置
./build/android/gradle/generate_gradle.py --output-directory $PWD/out/Debug --target "//webrtc/examples:AppRTCMobile" --use-gradle-process-resources --split-projects
Android Studio使用 “Import Project”导入项目,工程所在目录:out/Debug/gradle
。
webrtc CI日志 当你不确定checkout的版本是否有问题的时候,看看CI日志的编译情况,可以减少很多查错的时间
webrtc forum 版本更新、有疑问这里找
四、吐槽
webrtc个人感觉真的很蛋疼,项目虽让功能强大,但需要的付出也很大:
1、科学上网,大家都懂的……
2、不能连续下载,中途中断,只能重新下载,而且一下载就是10G以上,每次下载只能祈祷:信春哥,得永生。
3、项目大、资料少、坑太多。只是源码下载,编译就虐得你不要不要的,心累啊!!!