如何成功编译chrome浏览器源代码


原文出处:http://bbs.lupaworld.com/thread-63555-1-1.html


写在开头正如一位网友说的,在这个充满大量工业垃圾代码的环境,google 开源 chromium的出现无疑给这样的环境添加了几分艺术气息。我对此深有同感,确实,在这个浮躁的大环境下,我们产出的大部分程序代码,如果要和 google这样的顶尖技术公司产出的代码相比,说我们大部分时间都在编写垃圾代码是不为过的。

但我们不应该为此就感到悲观,毕竟象google这样的公司集聚的是全世界最顶 尖的技术天才。我等凡人怎能和他们相比,就我个人而言只能抱着虔诚的心仰视他们的‘艺术作品’。作为技术人员,虽然不是每个人都可以成为天才,但并不妨碍 我们站在巨人的肩上让自己看得更远一些。而现在的问题仅仅是有没有某种内因或者外因促使你这样去做!
如果你已经厌倦了每天充斥在你眼前大量的‘垃圾’代码,不妨把浮躁的心平静下来 欣赏一下‘艺术品’。google chrome浏览器源代码是一个很好的开始,虽然其代码工程非常之庞大(可能在你我看来),但这并没有影响它的优雅性。它是一座‘金矿’,我们的任务是做 好发掘工作。
编译步骤做好发掘工作的第一步就是获取代码并能成功编译调试,我这里只谈在 windows环境下的编译,我的操作系统是Windows Server 2008 企业版,其他windows 环境应该没有什么大的区别。其实我写此文的目的可能更多的是加深印象,做个备忘,因为官方描述的编译过程已经比较清楚了,如果你对官方的文档描述更感兴 趣,请参考这里
注意要下载代码并完全编译请准备至少10G空闲硬盘空间,你的机器配置越高越好。机器配置的好坏直接决定你等待编译的时间长短。
我这里仅仅是把步骤简化整理如下:(注意准备至少10G的)
1.安装Visual Studio 2008、安装VS2008 Service Pack 1、安装vs2008 sp1补丁的补丁KB967631; KB960075;KB958842KB957912 和KB971092.注意KB971092补丁比较大,共300多M。
2.安装Windows 7 SDK,最好下载ISO镜像版,要小很多。注意Windows 6.1 SDK 在39982的修订版本之后将不再支持。项目版本和日值情况可以到这里查看。安装完成后,在开始菜单中选择Windows SDK Configuration Tool和vs2008整合集成。
3.获取安装depot_tools工具,这是google自己用python封装的svn代码获取客户端工具,下载depot_tools.zip并解压到比如d:/depot_tools目录。将depot_tools目录路径加到PATH环境变量。然后新建环境变量GYP_MSVS_VERSION=2008,这个环境变量的目的就是最终生产vs2008的工程类型。
4.下载代码,在比如D:建立一个chromium的目录,然后命令行cd到该目录,明确你需要下载的版本,比如在我写此文的时候官方最新发布的版本为9.0.573.0,我要下载此版本的源代码,先在d:/chromium目录执行
gclient config http://src.chromium.org/svn/releases/9.0.573.0
该命令并没有真正下载代码,而只是做一个客户端配置工作,注意由于第一次运行 gclient,依赖的python和svn工具可能还没有安装,此时gclient会自动下载并安装,因此你不必单独事先安装svn客户端和 python。你可以在窗口上看到正在安装python和svn的进度提示,你只需要等待,如果中途出错,只需要再次执行上述命令即可。注意gclient config命令只需要执行一次,除非你需要同步其他版本的代码而改变了配置路径。该命令完成之后,再执行
gclient sync --force
就开始同步下载代码了,现在的任务就是等待,根据你的网络情况,可能需要下载半天到一天以上不等,由于下载时间比较长,如果你不是一直在旁值守的话,一定要将电脑的电源选项改为:硬盘从不休眠或从不关机,以免电脑自动休眠或关机导致下载过程中止。如果下载中途出错,只需要重新执行gclient sync –-force,会自动接着上次的下载。注意一定要加--force参数选项,否则可能下载不齐全。如果下载命令行窗口不小心被关闭了,或者电脑断电重启了,这时用上述方法时会提示:
"svn: Error processing command 'modify-wcprop' in '.'
svn: 'WATCHLISTS' is not under version control
svn cleanup 某某路径 failed
"

这时只需要进入“某某路径”下,将其.svn目录下的lock文件删除后,再执行上述命令,就可以继续下载了。


5.编译代码,如果一切顺利,gclient sync –force执 行完后,所有代码完全成功下载,并且自动生成了vs2008的解决方案工程文件,现在直接打开d:/chromium/src/chrome /chrome.sln解决方案文件,把chrome设置为启动工程,在chrome工程上点击右键选择build开始编译即可。根据你机器的配置情况, 需要等待20分钟到2个小时以上不等,我在新购T410(I7 CUP、4G内存、7200转500G硬盘)笔记本上,编译了40分钟。
6.运行chrome,编译完成后,总共有将近200个依赖工程,最终会在chrome/debug目录下生成chrome.exe和相关文件。在vs2008中直接F5运行,然后在浏览器地址栏输入‘about:’ 回车核实版本号。如果显示:
Chromium 
4.1.249.1059 (开发人员内部版本 44723)
WebKit 
532.5
V8 
1.3.18.22
User Agent 
Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/532.5 (KHTML, like Gecko) Chrome/4.1.249.1059 Safari/532.5
恭喜你,版本完全正确!注意我是以写此文的时候的最新版为例,你只需要和当时最新发布的安装版chrome对比即可。
总结整个过程是很顺利的,google把相关的工作做得非常完美了,不需要涉及到大量复杂的配置工作。chrome的开源算是google对开源界一个很大的贡献吧。gclient是google自己封装的工具,其本质是调用svn,额 外的工作主要在于google代码仓库用DEPS文件来描述项目版本之间的依赖关系,gclient会解析DEPS文件并下载对应版本的依赖库,这是一个 循环过程。有兴趣可以参考depot_tools目录下相关python脚本的实现过程。如果你想下载最新开发版,注意不要直接配置为http://src.chromium.org/svn/trunk/src, 这个下载下来很可能无法成功编译,因为主干上的代码随时在提交修改,没有release,所以一定要下载有release的,比如5.0.387.0。整 个工程非常庞大,由此可以看出做一个真正优秀的浏览器是多么不容易。代码中包括了webkit html解析、css解析、v8 js引擎实现、skia图形处理、安全技术、网络、数据库、NPAPI插件框架、扩展框架、多进程、多线程等等技术主题,如果你对某方面感兴趣,不妨对这 些艺术性的代码进行研究学习。当然对这样庞大的开源项目进行分析学习是要讲方法和毅力的,后续我也会对此作相关的分析和讨论。
最新代码下载下来之后,查了一下代码尺寸,吓一跳,居然有4个G,太吓人了。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值