一、先决条件
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%,所以最好还是一边睡觉一边编译。
版权声明:本文为博主原创文章,未经博主允许不得转载。
分享到:
相关推荐
断断续续下载chromium代码花了1周左右,代码约15G左右,其中遇到power shell的问题,遇到python的问题。最终编译花了11:30分。相比于Linux下的编译慢很多,系统运行的稳定性和速度也差很多。打算研究源码,一起分享...
详细的描述了chromium从开始下载到编译成功的各个步骤,方便后来人少走弯路。
VS2017编译Chromium Embedded Framework(CEF) 一、 下载 二、 用CMake配置工程 三、 编译工程 四、 修改例子测试
经过几天的摸索,终于通过本地的chromiumos kernel源码生成了zImage用于arm移植,修改kernel源码,并编译,可以进行内核移植咯。。。希望对大家有帮助
libcef源码(分支3202)源码+编译中遇到的问题及解决方法
该文件属于Chromium 58版本的编译配置文档,其中,包含每一项参数的说明。 请注意,该文档是通过gn args --list out/debug生成的,如果你已下载Chromium源码,可以手动生成,不必下载。
chromium编译工具gn源码
资源全称:cef_binary_cef_binary_75.1.16+g16a67c4+chromium-75.0.3770.100_windows64_windows64 对应cef版本:75.1.16 对应chromium版本:75.0.3770.100 win64为系统支持 h264编码支持 注:cef编译时认的是rar文件...
安卓版Chromium的源码,适用于需要定制浏览器开发的场景,代码比较庞大,完整的Chromium浏览器内核。
根据官方源码,加上支持视频的参数,编译,亲测可用,编译日期2022.06 支持H.264, AAC, MP4, MP3等文件 里面有官方示例程序,可以运行访问 html5test.com 验证 文件为压缩包,包含两个文件,内容如下 示例:cef_...
最近对Chromium源码进行了下载与编译,由于花费时间较长而且一些错误感觉并不是很好解决,特地写了一篇文档来记录整个从下载到编译完成的过程,以及我遇到的一些问题的解决方案。
C#写的Chromium核心的简单多标签浏览器源码,编译成功后把dll文件夹里面的文件复制到运行目录即可,浏览器核心版本号Chromium 43.0.2357.130
chromium源码编译需要的资源 直接解压到跟源码对应的路径下面 并添加路径到环境变量中
Chromium Chromium是一个开放源代码的浏览器项目,旨在为所有用户构建更安全,更快,更稳定的方式来体验Web。 该项目的网站是https://www.chromium.org。 Chromium中的文档Chromium是一个开放源代码的浏览器项目,...
谷歌开源项目Chromium的源码获取与项目构建(Win7+vs10/vs13)-附件资源
本源码2019-09-03下载的,环境搭建过程已经通过自己测试,按下面环境搭建可以直接进行项目编译。 由于每个人使用场景可能不一样,这里就不直接提供编译后的库文件了 v8 2019-09-03.zip目录说明: v8 2019-09-03.zip...
Chromium Embedded Framework (CEF)源码,亲测可编译出libcef.dll,版本是1916
但是我们这些还在坚守vs2008(.net 3.5平台)的就比较苦逼了,花了一天的时间把项目和语法错误进行了修改,终于可以在vs2008下进行编译并成功运行。这份资料里有相应的下载地址,希望对大家有用^-^
根据官方源码,加上支持视频的参数,编译,亲测可用,编译日期2022.06 支持H.264, AAC, MP4, MP3等文件,里面有官方示例程序,可运行访问 html5test.com 验证 文件为压缩包,包含两个文件,内容如下 示例:cef_...
在ubuntu 14.04下编译并运行chrommiuos,折腾了两天,终于下完源码,编译成功,并在KVM上运行起来了.