windows7 64位 编译 chromium源码

转载自:http://blog.csdn.net/zcmit/article/details/17007779


一、先决条件

1、  Win7 64位系统,硬盘空间60G,最好是SSD。

2、  安装vs2010(确认已安装64位编译工具组件)、vs2010 sp1(最好使用ISO)。

3、  安装win8 SDK(最好使用默认安装路径,这个没有ISO可用),只能用微软在线安装程序,完成后将其根目录添加到PATH环境变量中:

http://msdn.microsoft.com/en-us/windows/hardware/hh852363.aspx

4、  安装DirectX SDK:

http://download.microsoft.com/download/A/E/7/AE743F1F-632B-4809-87A9-AA1BB3458E31/DXSDK_Jun10.exe

5、  把win8 SDK和DirectX SDK添加到VS2010的INCLUDE和LIB目录:

\AppData\Local\Microsoft\MSBuild\v4.0\Microsoft.Cpp.Win32.user和\AppData\Local\Microsoft\MSBuild\v4.0\Microsoft.Cpp.x64.user:


6、  修改win8 SDK中Include\winrt\asyncinfo.h文件:


注释掉class关键字。

二、获取源码:

1、  在你的机器上有50G剩余空间的磁盘分区上建立源码根目录,最好是SSD并且没有虚拟内存分页文件的磁盘,如:C:\chromium,注意根目录不能有中文和空格。

2、  下载源码有3种方法:(1)直接用svn的windows客户端签出代码;(2)下载tarball压缩包(方便快速,但不支持vs);(3)使用depot_tools签出代码,这是google推荐的方式,速度慢但支持vs,同时自动下载第三方依赖工具,所谓一键部署,比配置V8编译环境时手动一个个下载确实要方便。我使用的第三种方式,为了加速我使用了goagent替换系统全局代理,对比后速度确实加快不少。

3、  下载depot_tools:https://src.chromium.org/svn/trunk/tools/depot_tools.zip,解压在任意目录,然后将其根目录加入PATH环境变量。

4、  进入源码根目录目录,执行

gclient config https://src.chromium.org/chrome/trunk/src,或:

gclient config http://src.chromium.org/svn/releases/32.0.1700.19,

后者的意思是下载一个指定的release版本,此处为最新稳定版。注意这一步还未开始下载,只是配置需要下载的源码svn路径,同时depot_tools会在这一步自动下载python、cyg等第三方工具在chromium\build\third_party中。

5、  修改C:\chromium.gclient文件,增加如下内容:"src/webkit/data/layout_tests/LayoutTests":None,

     "src/third_party/WebKit/LayoutTests": None,

     "src/chrome_frame/tools/test/reference_build/chrome_win":None,

      "src/chrome/test/data/perf/canvas_bench":None,

     "src/chrome/test/data/perf/frame_rate/content": None,

     "src/chrome/tools/test/reference_build/chrome_mac": None,

     "src/chrome/tools/test/reference_build/chrome_win": None,

     "src/chrome/tools/test/reference_build/chrome_linux": None,

     'src/chrome/test/data/layout_tests/LayoutTests/fast/workers': None,

     'src/chrome/test/data/layout_tests/LayoutTests/platform/chromium/fast/workers':None,

     'src/chrome/test/data/layout_tests/LayoutTests/fast/js/resources': None,

     'src/chrome/test/data/layout_tests/LayoutTests/platform/chromium-mac/http/tests/workers':None,

     'src/chrome/test/data/layout_tests/LayoutTests/http/tests/resources':None,

     'src/chrome/test/data/layout_tests/LayoutTests/storage/domstorage':None,

     'src/chrome/test/data/layout_tests/LayoutTests/fast/events': None,

     'src/chrome/test/data/layout_tests/LayoutTests/http/tests/workers':None,

     'src/chrome/test/data/layout_tests/LayoutTests/http/tests/xmlhttprequest':None,

     'src/chrome/test/data/layout_tests/LayoutTests/platform/chromium-win/storage/domstorage':None,

     'src/chrome/test/data/layout_tests/LayoutTests/http/tests/appcache':None,

      'src/chrome/test/data/layout_tests/LayoutTests/platform/chromium-win/fast/events':None,

     'src/chrome/test/data/layout_tests/LayoutTests/platform/chromium-mac/fast/events':None,

     'src/chrome/test/data/layout_tests/LayoutTests/platform/chromium-mac/storage/domstorage':None,

     'src/chrome/test/data/layout_tests/LayoutTests/websocket/tests/workers':None,

     'src/chrome/test/data/layout_tests/LayoutTests/platform/chromium-win/fast/workers':None,

     'src/chrome/test/data/layout_tests/LayoutTests/platform/chromium-win/http/tests/workers':None,

     'o3d/samples': None,

这里的意思是不要下载以上工程,以加快编译速度。

6、  运行gclient sync--force,开始下载代码。如果没有使用goagent等翻墙工具会很慢,同时会有很多连接失败的错误或svn提示关闭了远程链接,这时只要重新运行这个命令,多重复几次即可。在使用了goagent后速度很快,报错也很少。下载结束后会自动调用gyp生成chrome.sln。

7、 在上一步结束后若未生成chromium\src\chrome\chrome.sln,运行命令:

gclient runhooks --force,生成sln文件。如果出现python错误,参照http://www.cnblogs.com/cloud2rain/p/3427194.html

8、  打开chrome.sln,如果安装了VisualAssistant,打开会很慢,建议打开前禁用VA。

三、编译:

Google给出了几条编译优化措施,编译之前最好都参照其说明配置一下。

1、 最好使用多核CPU、64位系统、8G以上内存。(我的配置)

2、 关闭杀毒软件(关闭百度杀毒的自保护)。

3、 修改这里,减小并行数目(貌似默认是cpu核数):


4、  修改C:\chromium\src\tools\gyp\test\home_dot_gyp\home\.gyp\include.gypi文件为如下内容:

{

  'variables': {

    'msvs_multi_core_compile': 0,

  },

  'target_defaults': {

    'msvs_settings': {

      'VCCLCompilerTool': {

        'AdditionalOptions': ['/MP3'],

      },

    },

  },

}

这里的/MP3是同时运行的cl.exe的个数,改为你的cpu核数-1个,我这里是3。

5、  Google说的ninja编译我没用使用成功,估计是google文档中众多没有更新的其中一条。做好以上4步就好了。

6、 不要使用IncrediBuild,不适合chrome的编译场景。

7、 编译过程中如果出现和test相关的工程中的错误,不要理会。

8、 总共有:,未优化编译预计要11-12个小时。

9、 编译结束可能会有test工程的错误,在\src\build\Debug\中会生成chrome.exe。

运行结果:我编译的32.0.1700.19最新稳定版,内部V8版本3.22,也是最新稳定版。我只编译了32位Debug版,最终使用了硬盘空间42.6G。


四、总结

Google的官方文档说的还是很详细的,照着一步步来还是可以成功编译的,在下载编译的过程中遇到的一些问题,自己在网上查找解决方案发现一般都是编译环境不符合Google的官方文档的要求。由于国内网络环境受限,建议大家还是代理下载代码。编译过程中CPU使用率会一直维持在100%,所以最好还是一边睡觉一边编译。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值