在VS 2008下成功编译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-vcdiffgtestgoogleurlv8breakpad
    
利用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,将 
         <Tool
  Name="VCLinkerTool"
  LinkIncremental="2"
   />
       
修改成
         <Tool
  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看看编译的成果吧 :)

 

你可能感兴趣的:(chrome,工具,微软,tortoiseSVN)