下载最新的Google Chrome源码并编译

之所以这么喜欢chrome,就是因为它开放。与firefox不同,ff使用了mozilla的一些技术:xul、xpcom,而且编译过程非常复杂,不适合研究学习。chrome使用了最普通的lib:WTL、zlib、libpng、sqlite、webkit,连v8也不是专门为chrome开发的,它甚至可以独立在命令行中解释js代码。编译过程中使用了最最最平常不过的工具python,svn,cygwin。。。比起mozilla平易近人多了。 

1.为下载源码做准备 

这里下载depot_tools,解压缩。 
http://src.chromium.org/svn/trunk/tools/depot_tools.zip 


安装一个python 2.4,我直接从这里用svn签出了一个。官方用的就是2.4,我没尝试过其他版本。 
http://src.chromium.org/svn/trunk/tools/third_party/python/ 


因为gclient要用svn,而我只有TortoiseSVN,所以我在这里签出一个svn。 
http://src.chromium.org/svn/trunk/depot_tools/win/bootstrap/svn 
或者这里下载 
http://subversion.tigris.org 


将depot_tools,python,svn的三个路径添加到PATH环境变量中。 


之后,我把其中python和svn下面所有的.svn文件夹都删除了,免得svn操作的时候混乱,产生不必要的麻烦。不知道如果不删除会不会失败。 


2.下载源码 - 从SVN签出 

gclient config http://src.chromium.org/svn/trunk/src 


(可选)在.gclient文件中添加这些 
    "custom_deps" : { 
  "src/webkit/data/layout_tests/LayoutTests": None, 
    }, 
目的是为了不下载LayoutTests的文件。因为这个很浪费时间,而且好像目前对方的SVN还有问题,导致后面的gyp程序不能执行。 

gclient sync (--force) 


2.下载源码 - 下载tgz的压缩包 
http://build.chromium.org/buildbot/archives/chromium_tarball.html 
解压缩后如果想更新到最新版本就执行这个 
gclient sync (--force) 


3.编译 
编译chrome_exe工程就可以了。等啊等啊。。。 



注意: 
源码的目录名中不能有空格。 

官方说tgz压缩包不能用cygwin的工具解压,文件访问权限会出问题,推荐7z。当然也不能用winrar,它处理0大小的文件会出错。 

如果打开src/chrome/chrome.sln后发现,很多工程不存在,说明gyp过程失败。自己调用src/tools/gyp/gyp.bat src/build/all.gyp,这样打开sln就发现都齐了。 

如果VS2008出现“Error C2471: cannot update program database”错误,去这里下一个补丁打上 
http://support.microsoft.com/kb/946040 

如果找不到t2embap.h,或者安装一个Windows SDK 6.1,或者去其他安装了的机器上找到t2embap.h .lib .dll分别拷到你的SDK的include,lib,windows的system32就可以了。

 

 

1. 获取代码,chrome的代码存放在http://src.chromium.org/svn/trunk/src,可以通过svn下载下来,但比较大,如果要进行编译的话,推荐去下载release的。具体使用google提供的gclient工具, gclient config http://src.chromium.org/svn/releases/4.1.249.1059, 

2. 下载完代码后运行gclient runhooks --force即可生成*.sln等文件;
需要设置的环境变量:GYP_MSVS_VERSION = 2008   DEPOT_TOOLS_UPDATE=0
GYP_MSVS_VERSIO产生vs2008的文件;

你可能感兴趣的:(下载最新的Google Chrome源码并编译)