源码编译Chrome
官网描述
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 --nohooks --no-history chromium
或者下载我的打包好的源码镜像文件
PS: 20151126,正在下载最新的,完成后打包上传. windows下的压缩包
第七步, 编译
编译可以说是最简单的一步
先生成各种文件(可以省略)
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小时.
源码编译Chrome的更多相关文章
- 从源码编译Chrome(chromium)
转自:http://www.udpwork.com/item/13827.html 官网描述 http://www.chromium.org/developers/how-tos/build-inst ...
- CEF源码编译
CEF的构造说明:https://bitbucket.org/chromiumembedded/cef/wiki/BranchesAndBuilding chromium的源码地址:https://c ...
- 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)的概念,通 ...
- World Wind .NET源码编译问题处理
World Wind .NET源码编译问题处理 下载了World_Wind_1.4.0_Source源码(http://worldwindcentral.com/wiki/NASA_World_W ...
- 源码编译安装 MySQL 5.5.x 实践
1.安装cmakeMySQL从5.5版本开始,通过./configure进行编译配置方式已经被取消,取而代之的是cmake工具.因此,我们首先要在系统中源码编译安装cmake工具. # wget ht ...
随机推荐
- 优秀的Markdown编辑器MarkdownPad2免费版使用全功能
MarkdownPad,一款不错的Markdown编辑器,本人一直在用,具备所有Markdown的基本语法外支持一些特别的扩展,比如表格等. MarkdownPad分为免费版和收费版,区别是免费版不支 ...
- SLAM reference
Technical website: OpenSlam: http://openslam.org/ MRPT: http://www.mrpt.org/ Monocular SLAM: https:/ ...
- python_way day10 python和其他语言的作用域 、 python2.7多继承和3.5多继承的区别 、 socket 和 socketserver源码(支持并发处理socket,多进程,多线程)
python_way day10 1.python的作用域和其他语言的作用域 2.python2.7多继承和3.5多继承的区别 3.socket和socketserver源码(并发处理socket) ...
- iOS案例:读取指定txt文件,并把文件中的内容输出出来
用到的是NSString中的initWithContentsOfFile: encoding方法 // // main.m // 读取指定文件并输出内容 // // Created by Apple ...
- iOS - OC NSKeyedArchiver 数据归档
前言 @interface NSKeyedArchiver : NSCoder @interface NSKeyedUnarchiver : NSCoder 在 OC 语言中,归档是一个过程,即用某种 ...
- 手机如何解散QQ讨论组
手机如何解散QQ讨论组 讨论组可以方便一群人的聊天,一般都是一段时间的问题.过了这一段时间,大家都是不需要再在讨论组里面发言了,那么手机如何解散QQ讨论组呢? 1 我们登录自己的 QQ之后 ...
- Spring读书笔记-----使用Spring容器(二)
一.使用ApplicationContext 前面介绍了,我们一般不会使用BeanFactory实例作为Spring容器,而是使用ApplicationContext实例作为容器,它增强了BeanFa ...
- 禁止ubuntu的super快捷键
在mac上安装了ubuntu虚拟机, 但是发现command健(ubuntu中叫super健)被系统占用了, 习惯了command健的同学来说非常不方便, 如何禁用默认的command健呢? You ...
- commons-logging日志系统
日志的重要性是随着系统的膨胀而显现的,在一个庞大的系统中查错没有各种日志信息 是寸步难行的.所以在系统加入日志是必须的. 最原始的日志方式,就是在程序的适当地方添加System.out.prin ...
- LF will be replaced by CRLF in git add
git add 出现这样的提示: LF will be replaced by CRLF in qinqiu.txt. 这个时候要: $ rm -rf .git // 删除.git $ git co ...