至少需要17GB的磁盘空间,不光有CEF源码,还会下载chromium源码。编译master分支的话,如果编译到chromium可能会需要windows sdk,windows sdk的版本可以参考下面提到的链接BranchesAndBuilding,windows sdk的下载可以用Visual Studio Installer或者去微软官网搜索下载。

步骤参考自MaterBuildQuickStartBranchesAndBuilding,推荐使用第二种,第一种有不确定因素(主要是网络问题),所以成为敢于爬高探头的红杏(抽象万岁)是必要的。

需要用到自动脚本automate-git.py,这个脚本自动下载源码+编译,十分方便,但是还是事先准备好一些东西才是有备无患

PS:使用pyhton automate-git.py --help可以查看这个脚本的命令行参数,十分有帮助

depot_tools

可以在chromium的编译文档中找到,也可以使用automate-git.py下载,但是automate-git.py有可能会因为网络原因下载失败,如果下载失败(爆出IOERROR socket error类似的错误)时,需要手动完成以下步骤

下载depot tools,这个是个压缩包,解压到喜欢的位置,然后配置系统的环境变量,将depot_tools的路径配置到系统PATH中去,并将优先级往前移。

打开cmd执行gclient,这个操作会让depot_tools变身成为完全版(下载相应工具例如python等)。

然后回到automate-git.py,执行的时候需要告诉automate-git.pydepot_tools已经准备好了,用--depot-tools-dir=depot_tools_path来告诉它depot_tools的路径。这样automate-git.py就会跳过下载解压depot_tools的环节,直接进入下一步骤(但是需要depot_tools是执行过gclient命令的,因为需要一些工具)。

下载源码

因为我之前编译过chromium,所以本地是有depot_tools,因此跳过下载depot_tools的环节,使用该命令下载源码并编译cefpython ./automate-git.py --depot-tools-dir=F:\depot_tools --download-dir=../ --no-release-build,其中--no-release-build是因为默认automate-git.py会编译一份debug版,一份release版,可以但可能没必要,看自己的选择,编译两个版本会占用大量的空间和时间(因为chromium太大了),这条命令使用后会进行长时间的下载,耐心等待即可(自动真爽)。拉取代码需要花费的时间大概是6个小时(跟机器性能和下载速度有关)。

PS:注意!不管是切到远程分支还是在本地仓库的多个分支checkout都应该使用automate-git.py和其参数(例如--branch或--checkout)进行操作,不然可能会失败。

生成工程文件和编译

下载好源码之后,在chromium\src\cef\目录下创建create.bat文件,文件内容如下,设置了增快编译速度和生成vs用的解决方案的的gn参数

set GN_DEFINES=use_jumbo_build=true is_component_build=true
set GN_ARGUMENTS=--ide=vs2017 --sln=cef --filters=//cef/*
call cef_create_projects.bat

执行后,会生成项目文件cef.sln,然后可以用VS打开,编译。(但是不推荐使用VS编译,卡,慢)

cef_create_projects.bat其实是使用gn生成了.ninja文件,可以使用ninja编译

进入chromium的src目录下执行

ninja -C out\Debug_GN_x86 cef进行编译,可以得到库文件和编译好的测试程序。

【chromium】 cef源码下载的更多相关文章

  1. CEF源码编译

    CEF的构造说明:https://bitbucket.org/chromiumembedded/cef/wiki/BranchesAndBuilding chromium的源码地址:https://c ...

  2. Google Chrome 源码下载地址 (Google Chrome Source Code Download)

    1. Google Chrome 源码 SVN 地址:http://src.chromium.org/svn.包含有 Chrome.Gears.Webkit.GCC 等源码以及编译依赖工具.Chrom ...

  3. C# ini文件操作【源码下载】

    介绍C#如何对ini文件进行读写操作,C#可以通过调用[kernel32.dll]文件中的 WritePrivateProfileString()和GetPrivateProfileString()函 ...

  4. C# Excel导入、导出【源码下载】

    本篇主要介绍C#的Excel导入.导出. 目录 1. 介绍:描述第三方类库NPOI以及Excel结构 2. Excel导入:介绍C#如何调用NPOI进行Excel导入,包含:流程图.NOPI以及C#代 ...

  5. C# 条形码操作【源码下载】

    本篇介绍通过C#生成和读取一维码.二维码的操作. 目录 1. 介绍:介绍条形码.条形码的分类以及ZXing.Net类库. 2. 一维码操作:包含对一维码的生成.读取操作. 3. 二维码操作:包含对二维 ...

  6. DataGridView绑定源码下载

    效果图: 源码下载:http://hovertree.com/h/bjaf/bbot18bj.htm 上面源码不包含数据库的查询,需要获取数据库数据的话,请看这个的源码: http://hovertr ...

  7. Web 开发中很实用的10个效果【附源码下载】

    在工作中,我们可能会用到各种交互效果.而这些效果在平常翻看文章的时候碰到很多,但是一时半会又想不起来在哪,所以养成知识整理的习惯是很有必要的.这篇文章给大家推荐10个在 Web 开发中很有用的效果,记 ...

  8. Android 源码下载方法(Git 方式clone)

    Android源码对于Android开发者来说,迟早有一天你会用到的,所以就记录一下,分享给读者,希望对读者有用 这里需要使用到Git相关知识,不清楚的可以先阅读,了解的可以跳过 Git-Tortoi ...

  9. yate: windows下源码下载,配置,编译

    源码下载:使用svn下载checkout:http://voip.null.ro/svn/yate/trunk 配置:(本人使用的是vs2008,故下载的qt工具都是对应2008) 1. 下载并安装q ...

随机推荐

  1. tomcat采坑

    1. tomcat采坑 1.1. 采坑 今天又踩了个以前踩过的坑,运维系统迁移到docker,使用的tomcat版本是tomcat8,而原来的版本是tomcat7.0.53,导致的结果就是系统间请求一 ...

  2. TinyMCE基础配置

    选择器配置 插件配置 工具栏配置 菜单配置 皮肤配置 编辑区宽高配置 编辑区样式配置 隐藏状态栏 选择器配置 选择器就是CSS选择器,它告诉TinyMCE哪个元素是可编辑的. 示例: tinymce. ...

  3. QQ空间自动点赞js脚本

    这是很久前写的脚本了,在浏览器打开QQ空间,并在控制台输入代码就可 时间间隔最好开大点,不然容易被暂时冻结账号 function autoLike() { var list=document.getE ...

  4. error LNK2019: 无法解析的外部符号 _Direct3DCreate9@4,该符号在函数 "long __cdecl InitD3D(struct HWND__ *)" (?InitD3D

    出现如下错误: error LNK2019: 无法解析的外部符号 _Direct3DCreate9@4,该符号在函数 "long __cdecl InitD3D(struct HWND__ ...

  5. spoon数据转换中文乱码(kettle)

    (1) 查看mysql数据库是否为utf8(status) (2) 设置spoon (3) 文本打开spoon.bat,找到set OPT=%OPT% %PENTAHO_DI_JAVA_OPTIONS ...

  6. LAMP架构性能测试+php优化

     性能测试:1. 首先查看一下服务器的硬件性能free  -m  ---->查看一下内存的情况lscpu或者cat  /proc/cpuinfo     ------à查看一下cpu的情况2.  ...

  7. Android架构师吐槽腾讯王者荣耀的程序员,排位匹配算法怎么搞的,每次都输

    腾讯王者荣耀的开发来来来出来聊聊,真是日了狗了,多次离上王者还差两三颗星的时候队友就开始水的一塌糊涂,对面就牛逼的不行. 又连跪回去了,被对面把屎都打出来了,实在忍不住来吐槽,你们这个排位匹配算法到底 ...

  8. LCD编程_LCD控制器

    CLKVAL : VCLK = HCLK / [(CLKVAL+1) x 2]--------> CLKVAL = HCLK/VCLK/2-1 在这个地方HCLK=100M,那么VLCK等于多少 ...

  9. MySQL小测试(2)

    2.创建一个stu表,字段有:自增主键id,不为空姓名,默认值性别(枚举类型),无限制身高 create table stu( id int primary key auto_increment, n ...

  10. python中列表(list)函数及使用

    序列是Python中最基本的数据结构.序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推. Python有6个序列的内置类型,但最常见的是列表和元组. 序列 ...