在 Win7 下使用 VS2005 编译 Chrome
分类:
C++ 第三方开源库
2010-06-15 16:17
4496人阅读
评论(4)
收藏
举报
在 Win7 下使用 VS2005 编译 Chrome
Chrome 是浏览器的新秀,无论从启动速度、Js 执行速度、更新速度来说,都是最佳的。最主要的是,Chrome 还是开源的,拿来研究一定不错。本文所编译的 Chrome 版本为 Revision:49506(2010.06.11),Chrome 在 Google 内部的开发名是 Chromium,如下都是用开发名 Chromium。
本文先讲述怎样准备编译环境,然后下载官方代码,最后进行编译。
一、准备编译环境
从官网上知道, Chromium是可以使用 VS2005 进行编译的,所以本文也将使用 VS2005 进行编译,操作系统为 Windows 7。
无论编译什么类型的代码,第一步都是准备编译环境,编译 Chromium,需要安装如下软件(建议按步骤安装):
1、Visual Studio 2005 Team Suit ENU。
2、Visual Studio 2005 Service Pack 1:http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=bb4a75ab-e2d4-4c96-b39d-37baf6b5b1dc
3、安装补丁 Hotfix 947315:http://code.msdn.microsoft.com/KB947315/Release/ProjectReleases.aspx?ReleaseId=872
4、安装补丁 Hotfix 949009:https://connect.microsoft.com/VisualStudio/Downloads/DownloadDetails.aspx?DownloadID=18623
5、如果操作系统是 Vista,需要安装 Visual Studio 2005 Service Pack 1 Update for Windows Vista:http://www.microsoft.com/downloads/details.aspx?displaylang=zh-cn&FamilyID=90e2942d-3ad1-4873-a2ee-4acc0aace5b6
6、安装 Microsoft Windows SDK7(Microsoft Windows SDK for Windows 7 and .NET Framework 3.5 SP1):http://www.microsoft.com/downloads/details.aspx?FamilyID=c17ba869-9671-4330-a63e-1fd44e0e2505
7、配置 Microsoft Windows SDK7:开始菜单à所有程序à Microsoft Windows SDK v7 à Visual Studio Registration à Windows SDK Configuration Tool,在上边 Install Windows SDK Versions 右边的下拉框中选中“ v7”,在 Select Visual Studio Versions 中选中“Microsoft Visual Studio 2005”,最后点击“Make Current”即可(在弹出的对话框中选择确认)。
二、下载代码
Google 为 Chromium提供了一个源码下载管理的工具,名为:depot_tools:http://sites.google.com/a/chromium.org/dev/developers/how-tos/install-gclient。此工具包含了下载代码、上传代码、生成 VS 认识的 vcproj、sln 文件的功能。虽然可以直接使用 SVN 取到 Chromium 的代码,但建议使用 depot_tools 在命令行下进行操作,以避免一些不可预知的问题。
下面开始取源代码:
1、解压 depot_tools 到一个目录(通常可以放到C:/Program Files),并删除其所有 .svn 文件夹。
2、将 C:/Program Files/depot_tools/ 目录加入到系统环境变量的 PATH 中。
3、在其他磁盘新建一个目录,用于存储 chromium 的源代码。本例中为:E:/chromium_svn。
4、打开 CMD 命令提示符,切换到 E:/chromium_svn 目录。
5、执行命令设置好源码下载地址 gclient config http://src.chromium.org/svn/trunk/src
6、输入 gclient sync 下载源码。
第 5 步骤需要较长的时间,在下载过程中,有可能出现卡死现象(当下载过程长时间不响应,断定为卡式,关闭CMD,重新执行第五步的命令),我的整个下载过程使用了4小时。gclient sync 在完成代码下载后,会将 google 源代码配置文件(后缀名为gyp、gypi的文件)转换为 vcproj、sln 文件,这也是为什么使用命令行下载代码比较方便的原因之一。
如果你 chromium/src/chrome 目录下不存在 chrome.sln 文件,原因是没有彻底执行 gclient sync,执行一次即可。如果你不想下载代码,只想生成 chrome.sln,可以执行 gclient runhooks –force。
源代码下载完成之后,整个 Chromium_svn 有 3GB 大小,真实源码大概 1.5GB 左右,还有另外 1.5GB 是 SVN 配置文件的大小。
三、编译代码
去到目录,打开e:/chromium_svn/src/chrome/chrome.sln 便可以进行编译了,本例中我们编译 Debug 版本,打开环境后,如何进行编译就不用说了吧。如下有几个需要注意的地方:
1、如果VS2005中加载了 Visual Assist,当 Visual Assist 没有处理完之前,尽量不要对 VS2005 做任何操作(包括编译),防止 Visual Studio 卡死现象,Visual Assist 处理完成所有代码大概需要 30 分钟左右。
2、打开 VS2005 后,VS的IntelliSense 功能便开始运行了,整个运行过程长达1小时,个人建议禁止VS IntelliSense 运行,具体的方法可见本博客转载的另一篇文章《去掉Visual Studio 2005的IntelliSense功能》。
3、打开整个 Chromium 工程需要占用 500MB 的内存空间,编译过程至少需要500MB(不包括VS2005占用的内存),有时会高达 900MB,建议编译机器内存配置为 2GB 或以上。
我的CPU是Intel E5300,耗时5小时,总共编译370个工程。最后有个unit_tests 工程由于unittest_data.h文件编码问题编译失败,由于这是一个单元测试工程,可以不予理睬。
编译完成后,生成的文件夹(e:/chromium_svn/src/chrome/Debug/文件夹)大小达 13.5GB,包括源码文件的话,整个文件夹高达 17GB,建议编译前,确保磁盘拥有不少于20GB的空闲空间。
---------------------------------------
1、如果没有安装补丁Hotfix 947315,打开 chrome.sln 时,有可能出现卡死现象,是由于VS2005的Intelligense功能导致的。
2、如果没有安装补丁Hotfix 949009,编译过程中可能会出现错误“uuid.lib(shguids2.obj) : fatal error LNK1103: debugging information corrupt; recompile module”,如提示所说,重新编译模块并不能解决问题。
3、如果没有安装 Microsoft Windows SDK 7 或者没有 make current 绑定编译器为 VS2005,则编译过程中会出现很多编译错误,大多是宏没有定义,头文件不存在之类的。