从源码编译Chrome(chromium)
转自:http://www.udpwork.com/item/13827.html
官网描述
http://www.chromium.org/developers/how-tos/build-instructions-windows
为啥还要写这篇博客
- 太久没在这里写博客
- Chrome编译的教程,网上太多太多了,但各种错误(也许对他们当时的版本来说并不是错误)
- 好多博客没有把问题说清楚
源码打包下载(vbox的系统镜像文件)
http://pan.baidu.com/s/1ntCHH1Z密码:nbrm
如果失效请留言
第一步,修改系统语言
切换系统语言为英文!!!!!!
官网原文:
You must set your Windows system locale to English, or else you may get build errors about "The file contains a character that cannot be represented in the current code page."
不改?绝对的坑!! 报各种编码错误,最后我重新安装win7旗舰版!!
必须是x64系统!! 想想内存需求也应该明白!
You must have Windows 7 x64 or later. x86 OSs are unsupported.
再提醒一句, 安装所有重要的系统补丁, 用windows update服务安装!!! 里面包含IE11,必备. – 这一步只是为了保险起见.
第二步,安装VS2013
官网的要求是VS2013, 不是2008,不是2010,不是2012, 当前最新的要求是2013!!
You must build with Visual Studio 2013 Update 4, no other versions are supported.
http://www.visualstudio.com/downloads/download-visual-studio-vs
网络安装或下载iso(6G左右) 均可, 只需要安装C++套装,其他一概取消.
提示: 最后一步安装update4补丁包的时候(也就是最后的阶段),会很慢很慢,很慢,不知道为啥,反正很久,等吧.
第三步,科学上网
往下的步骤都需要科学上网,稳定的科学上网,可靠的科学上网,别怪我没提醒你git clone是不支持断点续传的!!!
第四步,添加环境变量
系统的环境变量加入 DEPOT_TOOLS_WIN_TOOLCHAIN 值为0
第五步,安装depot_tools
下载页面:http://commondatastorage.googleapis.com/chrome-infra-docs/flat/depot_tools/docs/html/depot_tools_tutorial.html#_setting_up下载地址:https://src.chromium.org/svn/trunk/tools/depot_tools.zip
解压到某个盘的根目录,别带中文,特殊字符等一切蛋疼的东西, 修改系统的环境变量, 把depot_tools的路径加入到PATH
启动cmd, 随便找个目录,执行
gclient
会自行下载python,git,svn等等依赖工具, 系统已经安装的python,git是不认的!!!
第六步,下载源码
重新打开一个console(cmd或者ComEms均可)
在一个剩余空间60G以上的盘, 严重建议是SSD, 起码是SSD加速盘或混合硬盘
建一个文件夹,叫chrome_build, 或任何你喜欢的英文名,别中文啊啊啊啊,假设为 W:\chrome_build
W:
mkdir chrome_build
cd W:\chrome_build
经典做法, 直接fetch
fetch chromium #会很久很久
省流量的方法
fetch chromium # 出现sync字样后, 终止(ctrl+c) gclient sync --no-history --force # 需要比较长的时间了
# 如果断开了,重新执行gclient语句就可以了,不需要再执行fetch.
别以为sync只是下载源码, 最后还会下载nacl的sdk的!!
第6步补充说明, 关于下载Webkit
正常下载的话, 下载webkit会很久很久,因为是整个历史都下载下来.
下面介绍的做法,需要修改DEPS文件, 比较折腾, 自行想象吧.
看到
[0:13:08] src/third_party/WebKit
的时候,可以终止gclient
然后,执行:
# 用notepad++ 打开src/DEPS,找到webkit_revision的配置
cd src/third_party/
git clone --depth=10 https://chromium.googlesource.com/chromium/blink.git WebKit
#大概下载360mb Cloning into 'WebKit'...
remote: Sending approximately 5.08 GiB ...
remote: Counting objects: 123641, done
remote: Finding sources: 100% (123641/123641)
remote: Total 123641 (delta 37772), reused 78823 (delta 37772)
Receiving objects: 100% (123641/123641), 360.61 MiB | 444.00 KiB/s, done.
Resolving deltas: 100% (37772/37772), done.
Checking connectivity... done.
Checking out files: 100% (144812/144812), done. # 执行git rev-list找个可用的rev
git rev-list HEAD
# 然后找出倒数第二个commit的sha1, 修改webkit_revision的值
# 回到根目录,重新开始gclient
gclient sync --no-history --force
继续长时间的等待, 真的很久很久, 洗洗睡觉吧.
PS: v8也很慢, 见仁见智吧.
第七步, 编译
编译可以说是最简单的一步
先生成各种文件(可以省略)
gclient runhooks
执行编译, out/Debug可以改成out/Release等等.
cd src
ninja -C out/Debug chrome
输出:
ninja: Entering directory `out/Debug'
[541/19418] RULE Assembling nacl_switch_unwind_win.asm to obj\native_client\sr...ice_runtime\arch\x86_64\service_runtime_x86_64.gen\nacl_switch_unwind_win.obj.
Assembling: nacl_switch_unwind_win.asm
[19418/19418] STAMP obj\chrome\chrome.actions_rules_copies.stamp
19418个编译任务, 193xx的时候来开始链接,很慢, 我的笔记本电脑i7-3630, 8G内存, 32G SSD加速的普通机械硬盘, 编译了2小时.
编译完成后可以到 out/Debug目录下找到chrome.exe, 启动一下就是你编译的Chrome了.
具体怎么打包成安装文件,还没找到方法.
原文链接: http://wendal.net/2015/02/04.html
从源码编译Chrome(chromium)的更多相关文章
- 源码编译Chrome
官网描述 http://www.chromium.org/developers/how-tos/build-instructions-windows 为啥还要写这篇博客 太久没在这里写博客 Chrom ...
- 如何在Windows上从源码编译Chromium (CEF3) 加入mp3支持
一.什么是CEF CEF即Chromium Embeded Framework,由谷歌的开源浏览器项目Chromium扩展而来,可方便地嵌入其它程序中以得到浏览器功能. CEF包括CEF1和CEF3两 ...
- CEF源码编译
CEF的构造说明:https://bitbucket.org/chromiumembedded/cef/wiki/BranchesAndBuilding chromium的源码地址:https://c ...
- 安卓系统源码编译系列(六)——单独编译内置浏览器WebView教程
原文 http://blog.csdn.net/zhaoxy_thu/article/details/18883015 本文主要对从 ...
- zstack源码编译安装(1.7.x版本)
图片没粘贴过来,请看本人gitbook吧https://www.gitbook.com/book/jingtyu/how-to-learn-zstack-code 运行环境 zstack的安装方式有很 ...
- Android 5.0源码编译问题
如果是自己通过repo和git直接从google官网上download的源码,请忽略这个问题,但是由于google在国内被限制登录,通过这一种方法不是每个人都能download下来源码,通常的做法就是 ...
- Android stdio Apktool源码编译
Android Apktool源码编译 标签(空格分隔): Android Apktool 源码编译 需求 习惯NetBeans调试smali需要用Apktool反编译apk,需要用-d的参数才能生成 ...
- SSH/SSL 源码编译安装简易操作说明
环境:CentOS 6.7 安全加固需求,由于某盟扫描系统主机有SSL系列漏洞,客户要求必须修复: 解决方案:将SSH/SSL升级到最新版本,删除SSL旧版本(实测不删除旧版本某盟扫描无法通过). 当 ...
- Hadoop源码编译过程
一. 为什么要编译Hadoop源码 Hadoop是使用Java语言开发的,但是有一些需求和操作并不适合使用java,所以就引入了本地库(Native Libraries)的概念,通 ...
随机推荐
- ajax遍历数组(实现百度搜索提示的效果)
方法一: 页面 <input type="hidden" id="classpath" value="${pageContext.request ...
- C# 三种实现抖屏的方式
//int a = -2; //this.BringToFront(); //for (int i = 0; i < 20; i++) //{ // a = -a; // this.Locati ...
- [实战]MVC5+EF6+MySql企业网盘实战(28)——其他列表
写在前面 本篇文章将实现,其他文件类型的列表. 系列文章 [EF]vs15+ef6+mysql code first方式 [实战]MVC5+EF6+MySql企业网盘实战(1) [实战]MVC5+EF ...
- 编译安装apache-2.4.18
apache安装时, 必须要apr和apr-util, 这两个包是必须的 当下载apache的版本过高, 如: apache-2.4.18, 那么要求的apr或apu=apr-util版本将至少在1. ...
- C#操作XML类
XML转换成HTML 1.//装载xsl XslCompiledTransform xslt = new XslCompiledTransform(); xslt.Load("output. ...
- 微信公众平台回复过了怎么不能再次回复?亲们要注意查看"公众平台回复用户消息时限变更通知"的公告啊
有网友一直在问“微信公众平台回复过了怎么不能再次回复?”,其实这个是微信公众平台订阅号设置的一个时间限制,一般都会提示:由于该用户48小时未与你互动,你不能再主动发消息给他.直到用户下次主动发消息给你 ...
- [Effective JavaScript 笔记]第48条:避免在枚举期间修改对象
注册列表示例 一个社交网络有一组成员,每个成员有一个存储其朋友信息的注册列表. function Member(name){ this.name=name; this.friends=[]; } va ...
- Centos 7 安装LAMP环境
一.安装Centos 官网下载Centos 7刻录成光盘后安装 二.安装apache yum install httpd #根据提示,输入Y安装即可成功安装 systemctl start httpd ...
- Linux 高可用开源方案 Keepalived VS Heartbeat对比
1)Keepalived使用更简单:从安装.配置.使用.维护等角度上对比,Keepalived都比Heartbeat要简单得多,尤其是Heartbeat2.1.4后拆分成3个子项目,安装.配置.使用都 ...
- PHP 冒泡原理
header('Content-Type: text/html; charset=utf-8'); // 简单冒泡算法 $a = array(5,43,3,2,1); function mp($a){ ...