Chromium CEF 2623 -- 支持 xp 的最后一个版本源码下载和编译步骤
背景
因为项目需要在客户端中内嵌浏览器,需要支持 xp 操作系统和播放视频,但 CEF 2623 以后的版本已经不支持 xp 操作系统,也不再提供 2623 版本的二进制发布包下载,只好自己手动编译。编译结果要求达到:
- 可以在 xp 及以上操作系统运行
- 可以播放 mp4 视频
在参考了很多文档,反复尝试很多次以后,终于编译成功并在项目中投入使用了。
因为直接从 CEF 代码库 2623 分支获取的代码编译会报错,需要进行多处修改才能编译成功。 这里把修改好的源码分享出来,只要根据下面的操作步骤配置编译环境,下载解压源代码直接编译应该就可以成功。
总的操作步骤是:
- 安装编译环境
- 下载源码压缩包解压
- 编译得到 CEF 的二进制发布包(包含集成所需的头文件和 dll,但还缺少 lib)
- 有了二进制发布包以后,就可以再轻松的编译静态 或 动态 lib
安装编译环境:
- OS: Win7 64bit 以上系统, 至少8G内存,60G以上硬盘,最好是SSD
- Visual Studio: VS2015u3 + Win10.0.14393 SDK + Ninja
- Python 2.7+
- 安装VS2015u3的时候,默认是不会安装Win10.0.14393 SDK的,需要手动勾选;
- 安装python后需要将python的执行环境加入到环境变量中;
下载源码
- 源码放在坚果云上供大家下载,下载速度很快,用此链接下载:https://www.jianguoyun.com/p/DZEq1SUQ_LKBBxjulmk
- 解压源码到磁盘根目录,比如 E:, 解压后的文件会在 E:\cef 文件夹中
编译
- 编译前需要保证磁盘空间至少 60G 的可用空间,最后编译完我用了 54.8G(而且只是编译 Release)如果 Release 和 Debug 同时编译,可能需要准备 120G 的空间
- 编辑 E:\cef\automate\build_cef_2623.bat 文件,根据需要编译的版本(Releae 或 Debug),打开或屏蔽相应的行,然后保存
- 进入命令行模式,切换到 E:\cef\automate 目录, 执行 build_cef_2623.bat 即开始编译
- 编译大概需要 4 个小时,编译过程中大部分时间,命令行窗口不会有变化,详细日志会写入 E:\cef\2623 文件夹,Release 版本大概日志写到 400 M 就快编译完了
- 编译完成后的二进制发布包在 E:\cef\2623\chromium\src\cef\binary_distrib 文件夹可以找到
按照上面的方式编译出来的是 32 位版本,且只能用于 VS2015。如果要用在其他环境,可以修改 E:\cef\automate\build_cef_2623.bat 文件中的参数,详细可参考文末的几篇参考文档。
根据二进制发布包编译 dll
- 参考这篇文章操作即可,很简单 https://www.jianshu.com/p/4c052fd02f7a
后续会把 vs2015 32位 环境下编译好的版本发上来,可以直接使用。
如果有问题可以加 QQ 群讨论,群号:599320555
转载请注明来自博客园 TerryHe 的微博 https://www.cnblogs.com/luckbird/p/CEF_2623_Compile.html
几篇参考文档
- https://www.jianshu.com/p/0d9f3633ef9e
- https://www.jianshu.com/p/4c052fd02f7a
- https://blog.csdn.net/zhuhongshu/article/details/54193842
- https://blog.csdn.net/ijiabao520/article/details/78006756
Chromium CEF 2623 -- 支持 xp 的最后一个版本源码下载和编译步骤的更多相关文章
- 我的第一个RootKit,支持XP、Vista、Win7、Win8 RTM 32位
只有写过一个BootKit,才能比较深刻的理解其整个过程与机制,也能加深对Windows系统引导各个过程的熟悉和理解. 我写的这个bootkit,暂时还没想到一个比较好的名字,它 1. 支持xp到w ...
- 使用Qt5.7.0 VS2015版本生成兼容XP的可执行程序 good(从VS2012 update1开始支持xp和c++11)
一.直接使用VS2012/VS2013/VS2015生成XP兼容的可执行程序 Visual Studio刚发布时没打补丁,称为RTM版,之后会陆续发布补丁,进行bug修复和功能增强.VS2010及之前 ...
- 关于在 java 8 下开启 TLS_RSA_WITH_3DES_EDE_CBC_SHA 支持 xp ie8 tls1.0 的正常访问
最近为 aioserver 增加了ssl支持. 在 myssl.com 上测试了一下,关于[客户端握手模拟]发现 ie8 xp tls1.0 这一项提示:握手失败 (服务器断开连接) 我又试了一下 ...
- Reg2Bat_By Slore(生成同名bat文件,支持XP WIN7 WIN7X64).vbs
原文http://slore.blogbus.com/logs/52627038.htmlSlore编写的这个reg文件转换为bat文件,是逐句转换的,不是通过批处理生成临时reg文件然后导入的方法, ...
- Qt5.5.0在Windows下静态编译(修改参数以后才能支持XP)good
测试系统环境: windows 7 编译软件环境: vs2013 + QT5.5.0 [源码地址:http://download.qt.io/official_releases/qt/5.5/5.5. ...
- 编译 Qt 5.6(使QtWebEngine支持XP)
说明 qt 5.6的编译进行了数十遍,才得出本文的可行方案,之所以花了这么多的时间,主要是qt引入了QtWebEngine模块后,导致编译难度直线上升,而且又有一些中国特色的问题(如360安全卫士)导 ...
- 官方发布的新版本Qt已经不支持XP了,要自己从源代码编译
官方发布的新版本Qt已经不支持XP了,要自己从源代码编译,编译选项里有个-target项,用来提供XP支持的,编译时加上-target xp就可以了 http://www.qtcn.org/bbs/r ...
- 让VC2012生成的程序支持XP系统(QT的DLL都是支持XP的,只与EXE有关)
如果用的编译器是VC2012以上,那么默认生成出的程序是不能运行在XP系统上的.所以需要修改链接参数 我们要做的是修改qmake.conf文件中的参数,文件路径根据开发环境不同而不同下面以5.1.1 ...
- JZ2440专用dnw 支持xp、win7、win8和win10系统【转】
本文转载自:https://blog.csdn.net/czg13548930186/article/details/76999152 学习于韦东山百问网公司 本文用于解决win7以上系统使用dnw难 ...
随机推荐
- C#之out和ref区别
out与ref的区别总结:1.两者都是通过引用来传递.2.两者都按地址传递的,使用后都将改变原来参数的数值.3.属性不是变量,因此不能作为 out或ref 参数传递.4.若要使用 ref 或 out, ...
- LeetCode 645. Set Mismatch (集合不匹配)
The set S originally contains numbers from 1 to n. But unfortunately, due to the data error, one of ...
- LeetCode 290. Word Pattern (词语模式)
Given a pattern and a string str, find if str follows the same pattern. Here follow means a full mat ...
- ios9--UIImageView的帧动画
// // ViewController.m // 05-UIImageView的帧动画 // #import "ViewController.h" @interface View ...
- [luoguP4142]洞穴遇险
https://www.zybuluo.com/ysner/note/1240792 题面 戳我 解析 这种用来拼接的奇形怪状的东西,要不就是轮廓线\(DP\),要不就是网络流. 为了表示奇数点(即\ ...
- Luogu4198 楼房重建
https://zybuluo.com/ysner/note/1124880 题面 带修改的区间维护最大斜率. 题面 解析 用线段树区间维护斜率. 考虑如何向上合并. 左半段一定有贡献. 如果左半段的 ...
- poj3469 Dual Core CPU——最小割
题目:http://poj.org/problem?id=3469 最小割水题(竟然没能1A): 代码如下: #include<iostream> #include<cstdio&g ...
- etcd磁盘清理步骤
etcd默认的空间配额限制为2G,超出空间配额限制就会影响服务,所以需要定期清理 以下是etcd磁盘清理的步骤: 1. 显示空间配额: ETCDCTL_API=3 etcdctl --endpoint ...
- js判断出两个字符串最大子串的函数
<!DOCTYPE html><html><head> <title></title></head><script typ ...
- Android Jetpack - 使用 Navigation 管理页面跳转
在今年的 IO 大会上,发布了一套叫 Android Jetpack 的程序库.Android Jetpack 里的组件大部分我们都接触过了,其中也有一些全新的组件,其中一个就是 Navigation ...