【chromium】 cef源码下载
至少需要17GB的磁盘空间,不光有CEF源码,还会下载chromium源码。编译master分支的话,如果编译到chromium可能会需要windows sdk,windows sdk的版本可以参考下面提到的链接BranchesAndBuilding,windows sdk的下载可以用Visual Studio Installer或者去微软官网搜索下载。
步骤参考自MaterBuildQuickStart和BranchesAndBuilding,推荐使用第二种,第一种有不确定因素(主要是网络问题),所以成为敢于爬高探头的红杏(抽象万岁)是必要的。
需要用到自动脚本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源码下载的更多相关文章
- CEF源码编译
CEF的构造说明:https://bitbucket.org/chromiumembedded/cef/wiki/BranchesAndBuilding chromium的源码地址:https://c ...
- Google Chrome 源码下载地址 (Google Chrome Source Code Download)
1. Google Chrome 源码 SVN 地址:http://src.chromium.org/svn.包含有 Chrome.Gears.Webkit.GCC 等源码以及编译依赖工具.Chrom ...
- C# ini文件操作【源码下载】
介绍C#如何对ini文件进行读写操作,C#可以通过调用[kernel32.dll]文件中的 WritePrivateProfileString()和GetPrivateProfileString()函 ...
- C# Excel导入、导出【源码下载】
本篇主要介绍C#的Excel导入.导出. 目录 1. 介绍:描述第三方类库NPOI以及Excel结构 2. Excel导入:介绍C#如何调用NPOI进行Excel导入,包含:流程图.NOPI以及C#代 ...
- C# 条形码操作【源码下载】
本篇介绍通过C#生成和读取一维码.二维码的操作. 目录 1. 介绍:介绍条形码.条形码的分类以及ZXing.Net类库. 2. 一维码操作:包含对一维码的生成.读取操作. 3. 二维码操作:包含对二维 ...
- DataGridView绑定源码下载
效果图: 源码下载:http://hovertree.com/h/bjaf/bbot18bj.htm 上面源码不包含数据库的查询,需要获取数据库数据的话,请看这个的源码: http://hovertr ...
- Web 开发中很实用的10个效果【附源码下载】
在工作中,我们可能会用到各种交互效果.而这些效果在平常翻看文章的时候碰到很多,但是一时半会又想不起来在哪,所以养成知识整理的习惯是很有必要的.这篇文章给大家推荐10个在 Web 开发中很有用的效果,记 ...
- Android 源码下载方法(Git 方式clone)
Android源码对于Android开发者来说,迟早有一天你会用到的,所以就记录一下,分享给读者,希望对读者有用 这里需要使用到Git相关知识,不清楚的可以先阅读,了解的可以跳过 Git-Tortoi ...
- yate: windows下源码下载,配置,编译
源码下载:使用svn下载checkout:http://voip.null.ro/svn/yate/trunk 配置:(本人使用的是vs2008,故下载的qt工具都是对应2008) 1. 下载并安装q ...
随机推荐
- 搜索引擎框架之ElasticSearch基础详解(非原创)
文章大纲 一.搜索引擎框架基础介绍二.ElasticSearch的简介三.ElasticSearch安装(Windows版本)四.ElasticSearch操作客户端工具--Kibana五.ES的常用 ...
- C++ OpenSSL 之四:CER转换为PEM
1.等同于使用: openssl x509 -in "cer_path" -inform DER -out "save_path" -outform PEM ...
- MSSQL记录表字段数据变化的相关SQl
在软件实施过程中,也许会有这样的问题: 表中数据出现非预期的结果,此时不确定是程序问题,哪个程序,存储过程,触发器.. 或还是人为修改的结果,此时可以用触发器对特定的表字段做跟踪监视,记录每次新增,修 ...
- centos7静黙安装Oracle11.2.0软件响应文件oracle_install.rsp
oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v11_2_0 oracle.i ...
- Java使用枚举来消除if else(转载)
Java代码里经常出现多个if else会大大降低效率,我们可以使用枚举的方式来代替if else,示例代码如下: public enum Grade { A_10_90(90, 100, " ...
- soeasy的键盘鼠标事件
在web自动化中,我们可能会遇到需要通过键盘或者鼠标去操作某些元素,那么我们就需要用到键盘事件和鼠标事件了,今天对键盘和鼠标操作进行一个总结 鼠标事件 鼠标事件需要引入ActionChains类,查看 ...
- Navicat Premium 12 永久使用办法
1.按步骤安装Navicat Premium,如果没有可以去官网下载:http://www.navicat.com.cn/download/navicat-premium 2.安装好后下载激活文件:h ...
- mybatis 模糊查询 mapper.xml的写法
1. sql中字符串拼接 SELECT * FROM tableName WHERE name LIKE CONCAT(CONCAT('%', #{text}), '%'); 2. 使用 ${...} ...
- mysql5.6采集数据插入出现MySQL server has gone away解决办法
当做网站有一个站要用到WEB网页采集器功能,当一个PHP脚本在请求URL的时候,可能这个被请求的网页非常慢慢,超过了mysql的 wait-timeout时间,然后当网页内容被抓回来后,准备插入到My ...
- springboot 整合 freemarker
springboot 整合 freemarker 依赖 <parent> <groupId>org.springframework.boot</groupId> & ...