最近准备在工作之余研究下v8,下班时间鼓捣了2天,现在终于能下载,能gclient sync了。

刚开始的目的就是跑一个hello world,按照wiki上的例子来: https://github.com/v8/v8/wiki/Getting%20Started%20with%20Embedding

开始之前,先得拉取代码并安装其他依赖工具,按: https://github.com/v8/v8/wiki/Using%20Git 来,主要是这几个步骤:

1. 获取depot_tools

2. 执行命令:

  gclient

  fetch v8

  cd v8

  切换分支

  gclient sync

其中可能出现问题,当初也知道,在天朝做技术,肯定要开代理的,于是开了系统的socks代理,发现git不会自动采用系统的代理,所以还得设置:

git config --global http.proxy 'socks5://127.0.0.1:7070'

git config --global https.proxy 'socks5://127.0.0.1:7070'

然后就算是开了代理,最后执行的gclient sync命令也不会成功,block一段时间后可能报这种错误吧(摘抄自网络):

________ running 'download_from_google_storage --no_resume --platform=linux* --no_auth --bucket chromium-gn -s src/buildtools/linux32/gn.sha1' in '/home/halton/work/projects/chromium/android'
File gs://chromium-gn/1088992877b3a13f25b61c8fc18e25296d8cab33 for src/buildtools/linux32/gn does not exist.
0> File gs://chromium-gn/1088992877b3a13f25b61c8fc18e25296d8cab33 for src/buildtools/linux32/gn does not exist, skipping.
Error: Command download_from_google_storage --no_resume --platform=linux* --no_auth --bucket chromium-gn -s src/buildtools/linux32/gn.sha1 returned non-zero exit status 1 in /home/halton/work/projects/chromium/android

找了一些时间,终于知道原来gclient内部跑download_from_google_storage时,是用不了socks的,只能用http代理,于是需要下载brew install polipo,用它将socks转换为一个http代理,另外gclient内部好像用的boto吧,需要配置boto来采用此HTTP代理,于是需要:

1. 在$HOME/.boto文件中写入:

  proxy = 127.0.0.1

  proxy_port = 8132

2. export NO_AUTH_BOTO_CONFIG=$HOME/.boto

3. 再次执行gclient sync

由于gclient sync执行时,他不会立即报错,会一直block直到无法解决的问题,才最终结束,所以会浪费很多时间(两晚上我都通宵等他执行),所以后面如果运行此命令,如果等待时间比较长,而还没有动静,就应该立即CTRL+C让他结束,再看是否有打印报错。

以上全靠回忆步骤,在此记录一下。

v8 源码获取与build的更多相关文章

  1. 科普 | 编译 V8 源码

    2017-02-13 justjavac 象尘说 对于JavaScript程序员来说,可以瞧一瞧justjavac给大家写的科普类读物,V8引擎的分析,“也许你不懂C++”,但是你可以了解一下,总是好 ...

  2. 观V8源码中的array.js,解析 Array.prototype.slice为什么能将类数组对象转为真正的数组?

    在官方的解释中,如[mdn] The slice() method returns a shallow copy of a portion of an array into a new array o ...

  3. 小迪安全 Web安全 基础入门 第六天 - 信息打点-Web架构篇&域名&语言&中间件&数据库&系统&源码获取

    一 . Web架构 语言.常用的Web开发语言有PHP,Java,Python,JavaScript,.net等.具体可参考w3school的介绍. 中间件. (1)常见的Web服务器中间件:IIS. ...

  4. 谷歌开源项目Chromium的源码获取与项目构建(Win7+vs10/vs13)

    转自:http://blog.csdn.net/kuerjinjin/article/details/23563059 从12年那会儿开始获取源码和构建chromium项目都是按照那时候的官方要求用w ...

  5. V8源码边缘试探-黑魔法指针偏移

    这博客是越来越难写了,参考资料少,难度又高,看到什么写什么吧! 众多周知,在JavaScript中有几个基本类型,包括字符串.数字.布尔.null.undefined.Symbol,其中大部分都可以在 ...

  6. Flutter源码剖析(一):源码获取与构建

    概述 本文介绍了Flutter源码的获取与构建,后面会另有文章介绍Flutter源码的版本管理.开发环境搭建等主题. 准备工作 Flutter源码分为两个部分: flutter/flutter是框架层 ...

  7. kettle系列-1.kettle源码获取与运行

    第一次写博客,心里有点小激动,肯定有很多需要改进的地方,望海涵. kettle算是我相对较为深入研究过的开源软件了,也是我最喜欢的开源软件之一,它可以完成工作中很多体力劳动,在ETL数据抽取方面得到了 ...

  8. Android 5.1 AOSP 源码获取

    本文已同步更新至:http://dxjia.cn/2015/08/android-aosp-code-sync/ Android 5.1源码开放有一个多月啦,但由于城墙的关系,每次想着更新最新源码学习 ...

  9. 【安卓本卓】Android系统源码篇之(一)源码获取、源码目录结构及源码阅读工具简介

    前言        古人常说,“熟读唐诗三百首,不会作诗也会吟”,说明了大量阅读诗歌名篇对学习作诗有非常大的帮助.做开发也一样,Android源码是全世界最优秀的Android工程师编写的代码,也是A ...

随机推荐

  1. python:unittest(测试框架)

    一,基本概念 TestCase:所有测试用例的基类 TestLoad:加载测试用例,返回TestSuite(测试套件) TestSuite:创建测试套件 TextTestRunner:运行测试用例 T ...

  2. 微信小程序简易教程

    刚接触到微信小程序开发,这里做一个简单的教程: 1. 获取微信小程序的 AppID 登录 https://mp.weixin.qq.com ,就可以在网站的"设置"-"开 ...

  3. OpenRisc-41-or1200的cache模块分析

    引言 为CPU提供足够的,稳定的指令流和数据流是计算机体系结构设计中两个永恒的话题.为了给CPU提供指令流,需要设计分支预测机构,为了给CPU提供数据流,就需要设计cache了.其实,无论是insn还 ...

  4. 适配ios7

    if ([self respondsToSelector:@selector(edgesForExtendedLayout)]) { self.edgesForExtendedLayout = UIR ...

  5. ceph主要数据结构解析3-Ceph_fs.h文件

    (1)集群内部子版本协议类型宏定义:与公共协议保持独立性,以便消息类型和协议升级受影响 #define CEPH_OSDC_PROTOCOL   24 /* server/client */OSD服务 ...

  6. Sql排名和分组排名

    在很多时候,都有排名这个功能,比如排行榜,并且还需要分页的功能,一般可以再select的时候按照某一字段 oorder by XX desc,这样limit 查找就可以得到排名信息,但是有时候是需要多 ...

  7. 神经网络和BP算法推导

    注意:绘画太难了,因为他们画,本文中的所有插图来自基本算法饺子机类.请勿转载 1.习模型: 事实上,基本上全部的基本机器学习模型都能够概括为下面的特征:依据某个函数,将输入计算并输出. 图形化表示为下 ...

  8. Swift开发语法

    Swift开发入门 简介 Swift 语言由苹果公司在 2014 年推出,用来撰写 OS X 和 iOS 应用程序 2014 年,在 Apple WWDC 发布 历史 2010 年 7 月,苹果开发者 ...

  9. LOAD DATA INFILE Syntax--官方

    LOAD DATA [LOW_PRIORITY | CONCURRENT] [LOCAL] INFILE 'file_name' [REPLACE | IGNORE] INTO TABLE tbl_n ...

  10. python的数与字符串

    双引号 c1="sldkjf"print c1c2="It's a dog"print c2 单引号c1='sldkjf'print c1c2='It" ...