动手编译开源的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 SP1和KB967631, 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
- 动手编译开源的Chrome浏览器
- 关于chrome浏览器的编译
- Chrome浏览器编译(转贴)
- Chrome,明天的浏览器
- chrome浏览器的快捷键
- chrome浏览器的快捷键
- Chrome浏览器的发展史
- Chrome浏览器的快捷键
- Chrome浏览器的快捷键
- Chrome浏览器的快捷键
- 动手写一个简易的文档下载Chrome插件
- 如何成功编译chrome浏览器源代码
- 下载并编译Chrome浏览器For Android
- Google的新浏览器Chrome
- Google Chrome浏览器的功能
- 体验Google的浏览器Chrome
- Google的Chrome浏览器,不爽
- 常用的Chrome浏览器插件
- Android自动化测试之monkeyrunner
- 揭开正则表达式的神秘面纱
- [Cocoa]深入浅出 Cocoa 之消息
- megaminx之旅五:班级(Classes)的服务器端
- 慎用Visual Studio的自动恢复/自动修复功能!
- 动手编译开源的Chrome浏览器
- zju 1499 Increasing Sequences(分步动态规划)
- CAP原理(CAP Theorem)
- 一个牛人对模电的理解
- java invoke 1【动态调用类的方法】
- struts2 + jquery 的简单ajax应用(备忘)
- TCHAR 转换为char
- 导入式样式表CSS与链接式样式表CSS的区别
- MessageBox显示变量及与AfxMessageBox区别