动手编译开源的Chrome浏览器

来源:互联网 发布:linux列出文件夹大小 编辑:程序博客网 时间:2024/06/06 19:58
我机器上的操作系统是Windows XP,安装了Visual Studio 2008。下面是我的编译过程,希望能抛砖引玉,对大家有所步帮助。

注意:如果使用其它版本的Windows和Visual Studio,请自行阅读参考资料1。

一、前期的准备工作
1. 安装Windows 7.1 SDK
    因为我安装过Windows 6.0 SDK,发现VS2008 VC++目录指向的是Windows SDK 6.0,所以我使用Start > Programs > Microsoft Windows SDK v7.1 > Visual Studio Registration > Windows SDK Configuration Tool,使VC++目录指向的是Windows SDK 7.1。
2. 安装 VS2008 SP1KB967631, KB960075, KB957912和KB971092
    VS2008 SP1和KB971092比较大,我在线安装完花了3-4个小时。
3. 安装DirectX SDK
    打开Download页,找到June 2010 DirectX SDK,里面显示的DXSDK有571M,又是一个大文件,又花了我好几个小时下载它。
    实践经验:参考资料1认为需要安装这个SDK,而且还给出了验证是否安装的方法:检查VS2008的MSVC|Tools|Options|Projects and Solutions|VC++ Directories,Include是否包含$(DXSDK_DIR)include,Library是否包含$(DXSDK_DIR)lib\x86。但是,我安装了这个SDK,检查我的VS2008,VC++ Directories的Include和Library没有包含这两个路径,然而编译照样成功。

注意:最好先完成前期准备工作,然后下载源代码,否则生成的VS2008 solution文件可能会有问题。如果solution文件不对,运行命令“gclient runhooks”生成新的solution文件。

二、下载源代码
1. 安装源代码下载工具depot_tools
    Google为我们提供了工具depot_tools,极大地方便了下载和编译chrome。这个工具很容易使用,下载depot_tools.zip,然后解压到比如目录E:\depot_tools下即可。
2. 配置系统环境变量
    将depot_tools的路径加到PATH环境变量,然后新建环境变量GYP_MSVS_VERSION=2008,这个环境变量的目的就是最终生产vs2008的工程类型。
    注意:如果安装过其它的SVN工具,在设置PATH的时候,要将E:\depot_tools放到其它SVN路径的前面,因为depot_tools使用自己的下载的SVN,不是其它的SVN。
3. 建立源代码存放目录
    我在E:盘下新建了一个目录chromium,用来存放Chrome的源代码。
4. 确定chromium版本
    打开网页http://src.chromium.org/svn/releases,里面有各个版本的chromium。我选了一个比较新的版本13.0.782.112,这个版本的网址是:http://src.chromium.org/svn/releases/13.0.782.112,下面步骤需要这个网址。
5. 配置depot_tools
    运行cmd.exe,用命令cd到第3步建立的目录E:\chromium,然后运行:gclient config http://src.chromium.org/svn/releases/13.0.782.112。
    注意由于第一次运行 gclient,依赖的python和svn工具可能还没有安装,此时gclient会自动下载并安装,因此你不必单独事先安装svn客户端和 python。
6. 开始下载chromium源代码
    使用这个命令:gclient sync --force,开始下载代码。因为代码比较多,大概6-7G左右,所以要有心理准备:)。还好,gclient支持断点续传,下次执行这个命令的时候,会自动接着上次的下载。下载完成之后,命令行最后会显示:..................................done。而且,在\src\chrome下面会生成很多的solution和project文件,其中包括chrome.sln这个文件。
    宝贵经验:我在sync LayoutTests代码的时候出现了错误,浪费了一些时间。LayoutTests代码很多,测试代码现在对我没有什么用,可以不下载它。不下载LayoutTests的方法如下:
    在sync源代码之前,最好先修改一下E:\chromium\.gclient文件。用记事本打开这个文件,在空的“custom_deps”中加入一项,用来禁止sync LayoutTests代码。修改后的“custom_deps”的如下:
    "custom_deps" : {
"src/third_party/WebKit/LayoutTests": None,
    },

    注意:下载的时候,最好将反病毒软件关闭,我用的McAfee就将某个js脚本当做了病毒,弄得下载中断过。

三、编译源代码
    编译过程很简单,打开E:/chromium/src/chrome/chrome.sln解决方案文件,把chrome设置为启动工程,在chrome工程上点击右键选择build开始编译即可。我的笔记本是Dell的E6400(2.53GHz双CUP、4G内存、7200转250G硬盘),大概编译了2个小时,这比下载代码的时间还是快不少的。
    整个工程非常庞大,然而编译的警告却只有16个,由此可以看出代码质量肯定非常的高。代码中包括了webkit html解析、css解析、v8 js引擎实现、skia图形处理、安全技术、网络、数据库、NPAPI插件框架、扩展框架、多进程、多线程等等技术主题,真是无价之宝。

四、运行Chrome
    我编译的是Debug版chrome,所以编译出来的chrome在e:\chromium\src\chrome\Debug下。可以在VS2008环境下直接F5运行chrome,熟悉的chrome界面立即展现在你面前,甚是激动。在地址栏输入“about:”,显示如下:
    Chromium 13.0.782.112 (Developer Build 95650)
    OS Windows
    WebKit 535.1 (branches/chromium/782@91904)
    JavaScript V8 3.3.10.25
    Flash 10,1,85,3
    User Agent Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.112 Safari/535.1
    版本号是13.0.782.112,正是我下载的版本号。

功夫不负有心人,历经两天一夜,终于编译成功了,以后可以慢慢的享受chrome这道大餐了。

参考资料:
1. http://www.chromium.org/developers/how-tos/build-instructions-windows
2. http://hi.baidu.com/templar101/blog/item/deb9eb0015a7f595e950cd83.html
原创粉丝点击