您的位置:首页 > 其它

在VS 2008下成功编译Chrome

2009-08-16 21:16 288 查看
转自:http://blog.csdn.net/celestialwy/archive/2008/12/01/3422970.aspx,适合老版本的chrome编译,新版本的编译请看后面的文章。

源码之前了无秘密 - 侯捷的《STL源码分析》
他这里的源码主要是指阅读源码,基于这个定义,个人将这句话稍作修改:“源码 + 调试”之前了无秘密。
抱着研究的态度,今天用VC++ 2008编译了Chrome的源码(现在机器上的VC++版本只剩2008了),现将编译流程描述如下:

1. 用TortoiseSVN下载最新的Chrome源码,假设下载到了目录“G:/Chrome/src/”下,以后的目录布局都基于这个假设

2. 准备Chrome依赖的源码

a) 无需下载的
编译时,Chrome依赖的第三方代码都应该在“G:/Chrome/src/src/third_party”,但是很奇怪,Chrome将六个项目放在了“G:/Chrome/src/deps/third_party”下。网上有同仁也提出了这个问题,他们的解决方法是将这六个项目copy一份到“G:/Chrome/src/src/third_party”,相当管用。但本人本着节约型社会,硬盘虽大,仍需节省利用的原则,使用了微软的官方工具junction通过创建软链接解决了这个问题,所使用命令如下 (注意:命令是在目录G:/Chrome/src/下执行):
junction src/third_party/icu38 G:/Chrome/src/deps/third_party/icu38
junction src/third_party/cygwin G:/Chrome/src/deps/third_party/cygwin
junction src/third_party/cygwin_src G:/Chrome/src/deps/third_party/cygwin_src
junction src/third_party/python_24 G:/Chrome/src/deps/third_party/python_24
junction src/third_party/WebKit G:/Chrome/src/deps/third_party/WebKit
junction src/third_party/svn G:/Chrome/src/deps/third_party/svn
junction的下载地址是http://technet.microsoft.com/en-us/sysinternals/bb896768.aspx

b) 需要重新下载的
还有五个项目需要重新下载,分别是open-vcdiff,gtest,googleurl,v8,breakpad。
利用TortoiseSVN下载open-vcdiff的地址是http://src.chromium.org/svn/branches/official/build_154.9/src/sdch
下载到本地目录G:/Chrome/branches/build_154.9/src/sdch
利用TortoiseSVN下载gtest的地址是http://googletest.googlecode.com/svn/trunk
下载到本地目录G:/Chrome/gtest/trunk
利用TortoiseSVN下载googleurl的地址是http://google-url.googlecode.com/svn/trunk
下载到本地目录G:/Chrome/google-url/src
利用TortoiseSVN下载v8的地址是http://v8.googlecode.com/svn/trunk
下载到本地目录G:/Chrome/v8/trunk
利用TortoiseSVN下载breakpad的地址是http://google-breakpad.googlecode.com/svn/trunk
下载到本地目录G:/Chrome/google-breakpad/trunk
创建软链接所使用命令如下:
junction src/sdch/open-vcdiff ../branches/build_154.9/src/sdch/open_vcdiff/depot/opensource/open-vcdiff
junction src/testing/gtest ../gtest/trunk
junction src/googleurl ../google-url/src
junction src/v8 ../v8/trunk
junction src/breakpad/src ../google-breakpad/trunk/src

c) 编译v8项目
用VS 2008打开和编译G:/Chrome/v8/trunk/tools/visual_studio/v8.sln,打开时会提示你转换项目,直接转换,没有问题,编译后顺利的话应该在目录G:/Chrome/v8/trunk/tools/visual_studio/Debug/lib下生成v8.lib

3. 修改Chrome项目

a) 修改G:/Chrome/src/src/build/debug.vsprops,将

Name="VCLinkerTool"
LinkIncremental="2"
/>
修改成

Name="VCLinkerTool"
LinkIncremental="2"
AdditionalDependencies="$(SolutionDir)../v8/tools/visual_studio/Debug/lib/v8.lib"
/>

b) 打开G:/Chrome/src/src/chrome/chrome.sln,将文件G:/Chrome/src/src/testing/gtest/src/gtest-test-part.cc文件添加到项目test/gtest中

4. 开始编译吧 :),喝杯开水,看看paper,静候成功

5. 运行G:/Chrome/src/src/chrome/Debug/chrome.exe看看编译的成果吧 :)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: