[Android]Linux下WebRTC下载与编译
1.硬盘空间:
WebRTC官方原话:
The checkout size is large due the use of the Chromium build toolchain and many dependencies. Estimated size:
Linux: 6.4 GB.
Linux (with Android): 16 GB (of which ~8 GB is Android SDK+NDK images).
Mac (with iOS support): 5.6GB
2.破墙:
Ubuntu破墙:http://www.cnblogs.com/hcbin/p/8489041.html
3.将socks5协议转http协议
proxychains使用socks5协议,但cipd不支持,会报出这样的错误:
[...] cipd: connectivity error ...
所以只能将socks5协议转http协议
使用polipo进行转换:
git clone https://github.com/jech/polipo.git
安装
cd polipo
sudo make all
sudo make install
打开编辑器,新建文件
vim /etc/polipo.conf
添加如下内容,保存关闭(绿字是设置polipo的代理,红字是破墙代理)
daemonise = false
pidFile = /tmp/polipo.pid
proxyAddress="0.0.0.0"
proxyPort=
socksParentProxy = "127.0.0.1:1080"
socksProxyType = socks5
diskCacheRoot = ""
执行polipo(PS:终端会卡住),打开新终端执行操作,命令可以省略proxychains前缀直接破墙
/usr/local/bin/polipo -c /etc/polipo.conf
参考:https://hk.saowen.com/a/fa13ead9f226de7d089a75fc4f56c77e836c43d7317b4fced023af6d133b448e
4.设置depot_tools代理
不设置的话download_from_google_storage会提示NO_AUTH_BOTO_CONFIG
打开编辑器,新建文件
vim /etc/gclient_boto.cfg
添加如下内容,保存关闭(绿字是polipo代理)
[Boto]
proxy = 127.0.0.1
proxy_port =
终端设置变量
export NO_AUTH_BOTO_CONFIG=/etc/gclient_boto.cfg
参考:https://blog.csdn.net/qq_22716879/article/details/53760879
5.设置git
git config --global core.packedgitlimit 10g
git config --global core.packedgitwindowsize 10g
git config --global core.bigfilethreshold 10g
git config --global core.compression 0
git config --global core.autocrlf false
git config --global core.filemode false
git config --global pack.deltacachesize 10g
git config --global pack.packsizelimit 10g
git config --global pack.windowmemory 10g
git config --global pack.threads 4
可选
git config --global branch.autosetupmerge always
git config --global branch.autosetuprebase always
下载代码,下载中断用gclient sync命令继续下载,整个下载过程需要几个小时(视乎网络速度)
PS:建议插网线,一般网线传输速率比WIFI快和稳定,WIFI受路由发送速率与无线网卡接收速率限制
mkdir webrtc-android && cd webrtc-android
fetch --nohooks webrtc_android
gclient sync
因为异常中断,使用gclient sync继续下载
如中断时发现某个文件无法下载,请手动下载,并复制到提示的文件夹中,然后多尝试用gclient sync继续下载
root@ubuntu:/home/hcbin/webrtc-android# gclient sync
Running depot tools as root is sad.
Syncing projects: 23% (15/63) src/third_party/accessibility_test_framework:chromium/third_party/accessibility-test-frameSyncing projects: 25% (16/63) src/third_party/android_support_test_runner:chromium/third_party/android_support_test_runnSyncing projects: 26% (17/63) src/third_party/bazel:chromium/third_party/bazel Syncing projects: 30% (19/63) src/third_party/byte_buddy:chromium/third_party/byte_buddy
________ running 'cipd ensure -log-level error -root /home/hcbin/webrtc-android/src -ensure-file /tmp/tmp78dpke.ensure' in '.'
Bootstrapping cipd client for linux-amd64 from https://chrome-infra-packages.appspot.com/client?platform=linux-amd64&version=git_revision:ae28364c740acff97ae118adcb2808b6cb5129c5...
curl: (7) Failed to connect to chrome-infra-packages.appspot.com port 443: Connection refused
Syncing projects: 68% (44/64) src/third_party/junit/src
[0:02:33] Still working on:
[0:02:33] src/third_party/icu [0:02:43] Still working on:
[0:02:43] src/third_party/icu [0:02:53] Still working on:
[0:02:53] src/third_party/icu [0:03:03] Still working on:
[0:03:03] src/third_party/icu [0:03:14] Still working on:
[0:03:14] src/third_party/icu [0:03:18] Still working on:
[0:03:18] src/third_party/icu
Syncing projects: 70% (45/64) src/third_party/icu src/third_party/apk-patch-size-estimator:chromium/third_party/apk-patch-size-estimator (ERROR)
----------------------------------------
[0:00:47] Started.
----------------------------------------
Error: Command 'cipd ensure -log-level error -root /home/hcbin/webrtc-android/src -ensure-file /tmp/tmp78dpke.ensure' returned non-zero exit status 7
root@ubuntu:/home/hcbin/webrtc-android#
参考:https://blog.csdn.net/qq_22716879/article/details/53760879
6.编译
下载依赖
cd src
./build/install-build-deps.sh
确定当前工作目录是src,使用GN生成项目
gn gen out/Release --args='target_os="android" target_cpu="arm"'
ARM64 使用 target_cpu="arm64"
32-bit x86: 使用 target_cpu="x86"
64-bit x64: 使用 target_cpu="x64"
编译
ninja -C out/Release
参考:https://webrtc.org/native-code/android/
[Android]Linux下WebRTC下载与编译的更多相关文章
- [转]Caffe在Linux下的安装,编译,实验
Caffe在Linux下的安装,编译,实验 原文地址:http://www.cnblogs.com/evansyang/p/6150118.html 第一部分:Caffe 简介 caffe是有伯克利 ...
- Linux下校验下载文件的完整性(MD5,SHA1,PGP)
查看: Linux下校验下载文件的完整性(MD5,SHA1,PGP) http://blog.useasp.net/archive/2014/03/29/use-md5-sha1-or-pgp-to- ...
- Linux下librdkafka客户端的编译运行
Linux下librdkafka客户端的编译运行 librdkafka是一个开源的Kafka客户端C/C++实现,提供了Kafka生产者.消费者接口. 由于项目需要,我要将Kafka生产者接口封装起来 ...
- Linux下FFmpeg的安装编译过程【转】
本文转载自:http://www.linuxidc.com/Linux/2013-06/85628.htm 详细说下在Linux下FFmpeg的安装编译过程.参考 Ubuntu 10.04安装编译FF ...
- I.MX6 Android 5.1.1 下载、编译
/************************************************************************* * I.MX6 Android 5.1.1 下载. ...
- Android源码的下载和编译
由于公司会安排我做硬解码这块,所以最近一直想研究一下Android源码,可是Android源码的下载真的挺麻烦的(可能是我第一次下载),参照网上的方法,没有一个可行的,现在就将我的下载过程和大家分享一 ...
- Android系统源代码的下载与编译
http://www.jianshu.com/p/aeaceda41798 目录 1.简介 2.官方同步源代码 3.镜像同步源代码 4.已有源代码更新 5.编译源代码 5.1编译Android 4.1 ...
- [zhuan] linux 下 wxWidgets 安装,编译
http://blog.csdn.net/yuzhenxiong0823/article/details/7727133 wxWidgets在Linux下有wxGTK和wxX11供使用,各需要GT ...
- linux下motion摄像头监控编译与配置
利用linxu下的开源的motion搭建嵌入式视频动态监控系统 所谓移动图像监测,简单来说就是利用摄像头定点监测某个区域,当有移动物体经过时,摄像头便自动抓拍(要监测多大物体.按拍照速率都是可调的), ...
随机推荐
- 黑an网络---an网入门
我认为学网络的会上an网也是一项必备的技能,我不是鼓励你去犯罪而是保护自己的个人隐私免遭被侵害.an网和shen网实际上都是从英文翻译来的,an网即Dark Net或Dark Web,shen网则译为 ...
- Assembly Experiment9
用英文写太浪费时间了,而且书上的讲解对各种功能的英文原句少之又少,有空还是看龙书吧(不存在的) 实验1: 十六进制转换十进制 实验代码: ; 在屏幕上输出内存单元中的十进制两位数 assume cs: ...
- Java(原码、反码、补码和计算机存储格式)
原码:将一个整数,转换成二进制,就是其原码.如单字节的5的原码为:0000 0101:-5的原码为1000 0101. 反码:正数的反码就是其原码:负数的反码是将原码中,除符号位以外,每一位取反.如单 ...
- sosreport-汇总收集linux系统信息
有时候我们想将Linux服务器信息一次性查询并导出发送给他人,我们可以使用这个sosreport这个工具 安装 yum install sos -y 收集信息 sosreport 收集到的信息默认保 ...
- c++——智能指针学习(unique_ptr)
1.为什么会有unique_ptr? 动态内存忘记delete,导致内存泄漏.比如: p = new (); if(...) { return ; } delete p; 因此我们需要一种方式来解决这 ...
- 利用chrome浏览器爬取数据
相关的库自己下载吧,直接上代码 from selenium import webdriver from bs4 import BeautifulSoup import time #手动添加路径 pat ...
- 导入tensorflow时DLL load failed: 找不到指定的模块
简单暴力:卸载 重装 方法一: 先删除:pip uninstall tensorflow 再下载:pip install tensorflow 方法二: 也有可能是numpy版本不匹配的问题: 卸载: ...
- case when then
--使用IN的时候 SELECT keyCol, CASE WHEN keyCol IN ( SELECT keyCol FROM tbl_B ) THEN 'Matched' ELSE 'Unmat ...
- windows下使用caffe测试mnist数据集
在win10机子上装了caffe,感谢大神们的帖子,要入坑caffe-windows的朋友们看这里,还有这里,安装下来基本没什么问题. 好了,本博文写一下使用caffe测试mnist数据集的步骤. 1 ...
- CURL 支持 GET、PUT、POST、DELETE请求
一个方法解决所有的 curl 请求的问题. <?php function curlTypeData( $method, $url, $data=false, $json=false ) { $d ...