源码编译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 ...
随机推荐
- Python基础学习笔记(二)变量类型
参考资料: 1. <Python基础教程> 2. http://www.runoob.com/python/python-chinese-encoding.html 3. http://w ...
- Linux Shell Bash 带有特殊含义的退出码
linux在执行完一条命令后,使用 echo $? 会显示上一条命令是否执行成功,相关状态码如下 0为成功 表格 D-1. "保留的"退出码 退出码的值 含义 例子 注释 1 通用 ...
- Java初始化(成员变量)
java尽力保证:所有变量在使用前都能得到恰当的初始化.对于方法的局部变量,java以编译时错误的形式来贯彻这种保证.如下面代码: public class TestJava { void test( ...
- iOS - OC NSArray 数组
前言 @interface NSArray<__covariant ObjectType> : NSObject <NSCopying, NSMutableCopying, NSSe ...
- iOS - Swift NSUserDefaults 数据存储
前言 public class NSUserDefaults : NSObject 用来保存应用程序设置和属性.用户保存的数据.用户再次打开程序或开机后这些数据仍然存在.如果往 userDefault ...
- CentOS7静默安装oracle11g
操作系统: [root@docker ~]# uname -m x86_64 [root@docker ~]# cat /etc/redhat-release CentOS Linux release ...
- iOS开发之 获取手机的网络的ip地址
首先在使用的地方导入 #include <ifaddrs.h> #include <arpa/inet.h> 然后直接调用 - (NSString *)getIPAddress ...
- 关于Split方法
String a="1000,"; String[] b=a.split(","); System.out.println(b); 关于以上代码,b中只有一个元 ...
- maven各种插件在总结
http://blog.csdn.net/taiyangdao/article/category/6377863 好文章系列课程
- apk瘦身(包大小优化)
最近太忙好久没有写随笔,放假才有空写写随笔. 最近在项目中一直在做包大小优化 随着业务需求的增加,包大小是忍不住的往上涨 为了提高应用市场下载转化率,一直在优化包大小 首先 分析你的apk中占比的主要 ...