一、编译环境
本人开发环境:Windows XP + Visual Studio 2005 + Microsoft Windows SDK7 + Microsoft DirectX SDK (June 2010)注意:建议按步骤安装
1、使用Visual Studio 2005
Visual Studio 2005 Service Pack 1。
安装补丁 Hotfix 947315、Hotfix 949009。
如果操作系统是 Vista,需要安装 Visual Studio 2005 Service Pack 1 Update for Windows Vista。
2、使用Visual Studio 2008
Visual Studio 2008 Service Pack 1。
安装补丁KB967631、 KB960075、KB958842、 KB957912 和KB971092。
3、安装Microsoft Windows SDK7
Microsoft Windows SDK7
4、安装Microsoft DirectX SDK 最新版我用的是Microsoft DirectX SDK (June 2010)已满足编译要求。
5、配置 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(或Microsoft Visual Studio 2008)”,最后点击“Make Current”即可(在弹出的对话框中选择确认)。
二、下载代码
下载代码管理工具depot_tools,这是google自己用python封装的svn代码获取客户端工具。将depot_tools解压到比如E:/Chrome/depot_tools目录(目录路径请不要带有中文或空格),并将其目录路径加到PATH环境变量;然后,新建环境变量GYP_MSVS_VERSION=2005(或2008),这个环境变量的目的就是最终生产vs2005(或2008)的工程类型。然后命令行cd到E:/Chrome/chromium执行命令 gclient,配置环境。
1,直接通过depot_tools工具下载源代码速度是比较慢的,我先下载最新稳定版的源代码离线包,然后再更新到最新版本。将离线包解压比如E:/Chrome/chromium目录(目录路径请不要带有中文或空格,并保证此分区有20G剩余容量)。更新源代码到最新,以及生产VS2005(或VS2008)工程项目文件。命令行cd到E:/Chrome/chromium目录(chromium目录下有src文件夹),执行命令gclient sync --force,完成后执行gclient runhooks--verbose,可直接生成对应的项目工程文件。
2,SVN 下载代码:安装depot_tools后命令行:
cde:/chrome/chromium
gclient config https://src.chromium.org/chrome/trunk/src
svn ls https://src.chromium.org/chrome
完了以后生成一个.gclient 文件,继续执行gclient sync 开始更新代码。代码下载完毕后执行gclient runhooks –verbose,生成项目工程文件。
三、编译代码
进入E:/Chrome/chromium\src\chrome目录,打开chrome.sln解决方案,比过程比较慢,因为VS IntelliSense和Visual Assist(如果安装了的话)会分析代码,既耗时,有卡,强烈建议关闭VS IntelliSense。直接编译chrome目录下的chrome.proj工程即可,此过程更加费时(跟电脑配置有关,耗时不等,我的是4小时左右),慢慢等待吧。
编译成功后,E:/Chrome/chromium\src\chrome\Debug目录下,会生成Debug版程序。
将chrome.proj设为启动项目,F5,进入调试模式,看其他项目里的源文件可否设置断点(我的就不行,非常悲催!),如果可以,那么恭喜你,进入chrome学习之旅吧;不过不行,请继续往下看吧。
四、chrome不能调试的解决之法
进入调试模式后,单击“调试”– >“窗口”– >“模块”,查看“模块”窗口中,chrome.dll的符号文件是否没有加载成功,如果是,问题应该与我的相同了。
VS 2005新建一个解决方案,只添加chrome.proj和chrome_dll.proj项目,将chrome.proj设为启动项目,F5,直接调试(不用编译,也不能编译,如需编译请回到chrome.sln下编译),这时再看能否设置断点,如果可以,那么恭喜你啦。
问题原因,可能是WindowsXP + 2G内存 + chrome.sln工程太多的原因吧(看来2G内存面对近500个工程的chrome,有些寡不敌众了)。