`
zcmit
  • 浏览: 17806 次
文章分类
社区版块
存档分类
最新评论

windows7 64位 编译 chromium源码

 
阅读更多

一、先决条件

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_toolshttps://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%,所以最好还是一边睡觉一边编译。

版权声明:本文为博主原创文章,未经博主允许不得转载。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics