2-3年前在做客户端开发时,看过CHROME的一部分代码,主要是BASE库相关的。其项目之大,编译时间之长给我留下了深刻的印象。

3年后的最近,想着再读一下其他部分的代码,所以就对其纠结的下载和编译过程做下总结。

网上的一些文章都是比较过时的,按照那些文章的做法基本没啥戏。其实,仔细阅读chromium中关于Get Source Code页面的说明就能开耍了。现在的整个流程要比之前的流程感觉清晰多了。

我的环境是WIN7 SP1 + VS2013 UPDATE4。最新的chrome代码引入了一些C++11的特性,所以用13是必须的。

具体流程

  1. VPN一枚。天朝的特殊需求,大家懂的。
  2. 下载depot_tools,具体流程可以参考这个页面。下载好后,在系统变量PATH中添加depot_tools的路径。
  3. 然后设置系统变量set DEPOT_TOOLS_WIN_TOOLCHAIN=0 这个系统变量可以提前设置。
  4. 打开cmd,输入fetch --nohooks chromium 开始进入漫长的下载过程,会下载很多必备的工具,比如python,git之类的
  5. 执行gclient,会检查一些环境,继续更新一些东西
  6. 执行gclient sync,同步最新的代码,同步其他模块之类的
  7. set GYP_MSVS_VERSION=2013
  8. set GYP_GENERATORS=msvs-ninja,ninja
  9. set GYP_DEFINES=component=shared_library, 以DLL方式编译,你如果不想就不用设置这个变量
  10. 执行gclient runhooks,开始生成项目之类的
  11. cd src,切换到src目录下
  12. ninja -C out\debug chrome,开始编译

遇到的问题

编译过程中提示一些编码问题,放狗搜了下,我把系统的“非Unicode程序的语言”设置为英语(美国)后重启再编译就好了。

我用的机器是E5的CPU,SSD盘,96G内存,编译一共用了差不多1个半小时。留图纪念下:

Chrome代码下载及编译的更多相关文章

  1. PDFium-PDF开源之旅(1)-初探代码下载编译

    近日,Google和Foxit合作开源了Foxit的PDF源代码. 叫PDFium 相关新闻不少.哈,虽说已经不是程序猿了.只是还是有兴趣跑起来围观看看.废话少说.先说编译代码的步骤(事实上Googl ...

  2. Mac下载并编译Google安卓AOSP项目代码

    Mac下载并编译Google安卓AOSP项目代码 参考 https://source.android.com/source/index.html 这两天用Mac下载安卓AOSP源码,且把遇到的问题记下 ...

  3. Jenkins进阶-Git多仓库代码下载编译 (13)

    多仓库代码部署这个问题其实在13年做配置管理的时候,就遇到过这样的问题,而最近公司可视化图项目也需要多个仓库代码需要同时下载进行编译,由于仓库之间的代码编译有依赖关系,所以必须同时下载下来按照顺序进行 ...

  4. Android webRTC 代码下载编译

    1.安装depot tools git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git 然后把把depot ...

  5. openwrt针对RT5350代码下载,配置和编译

    转载地址:http://blog.csdn.net/dean_gdp/article/details/37091685 近期买了块官方板的RT5350: 先介绍代码下载.下面命令都是用登录用户运行,无 ...

  6. Android 程序分析环境搭建-Android 9 -代码下载编译

    Android 9 -代码下载编译 一,翻墙下载: 1.背景: 背景: 现在Android framework 开发的同学,整体在公司里面解一些无关痛痒的bug,对于Android framework ...

  7. Python + Selenium +Chrome 批量下载网页代码修改【新手必学】

    Python + Selenium +Chrome 批量下载网页代码修改主要修改以下代码可以调用 本地的 user-agent.txt 和 cookie.txt来达到在登陆状态下 批量打开并下载网页, ...

  8. 分布式消息总线,基于.NET Socket Tcp的发布-订阅框架之离线支持,附代码下载

    一.分布式消息总线以及基于Socket的实现 在前面的分享一个分布式消息总线,基于.NET Socket Tcp的发布-订阅框架,附代码下载一文之中给大家分享和介绍了一个极其简单也非常容易上的基于.N ...

  9. Android学习系列(38)--Android源码下载和编译

    前面多篇文章介绍到如何下载和编译Android或者CM源码,不过一直都是放在<拓展系列>里.随着学习的深入,android源码是非常有参考和学习价值,强烈推荐大家都去下载,编译,学习,所以 ...

随机推荐

  1. favicon.ioc使用以及注意事项

    1.效果 2.使用引入方法 2.1 注意事项:(把图标命名为favicon.ico,并且放在根目录下,同时使用Link标签,多重保险) 浏览器默认使用根目录下的favicon.ico 图标(如果你并没 ...

  2. Dreamweaver 扩展开发:C-level extensibility and the JavaScript interpreter

    The C code in your library must interact with the Dreamweaver JavaScript interpreter at the followin ...

  3. ASP.NET MVC5+EF6+EasyUI 后台管理系统(69)-微信公众平台开发-功能概述

    系列目录 为什么要先发这个文章? 因为接下来的文章是关于微信开发的系列,心中一定要有一个概念,知道自己接下来要做什么功能. 而且微信到处都是坑,我首先要把微信与本地跑通起来才敢发布,否则中间出现坑导致 ...

  4. Python(九) Python 操作 MySQL 之 pysql 与 SQLAchemy

    本文针对 Python 操作 MySQL 主要使用的两种方式讲解: 原生模块 pymsql ORM框架 SQLAchemy 本章内容: pymsql 执行 sql 增\删\改\查 语句 pymsql ...

  5. C#委托异步调用

    参考页面: http://www.yuanjiaocheng.net/webapi/mvc-consume-webapi-get.html http://www.yuanjiaocheng.net/w ...

  6. 基于NPOI的Excel数据导入

    从Excel导入数据最令人头疼的是数据格式的兼容性,特别是日期类型的兼容性.为了能够无脑导入日期,折腾了一天的NPOI.在经过测试确实可以导入任意格式的合法日期后,写下这篇小文,与大家共享.完整代码请 ...

  7. VS2015墙内创建ionic2

    开始学习ionic2,试验各种方法,感觉以下是紧跟rc版本的最佳方案 STEP1 设置cnpm npm install -g cnpm --registry=https://registry.npm. ...

  8. jquery.multiselect 多选下拉框实现

    第一步:链接下列文件,如果没有,到此网页下载 https://github.com/ehynds/jquery-ui-multiselect-widget,此插件基于jquery ,所以jquery的 ...

  9. Linux的学习笔记

    Linux,1991年,系统安全,良好的可移植性,多用户,多任务,良好的兼容性,良好的用户界面, 主流的是RedHat或者CentOS, CentOS 设置的网关 192.168.2.2 Window ...

  10. 理解Storm并发

    作者:Jack47 PS:如果喜欢我写的文章,欢迎关注我的微信公众账号程序员杰克,两边的文章会同步,也可以添加我的RSS订阅源. 注:本文主要内容翻译自understanding-the-parall ...