参考学习链接:https://blog.youkuaiyun.com/fuhanghang/article/details/112505473
Chromium Embedded Framework (CEF)是个基于Google Chromium项目的开源Web browser控件(所以cef的纯源码编译需要chromium源码),支持Windows, Linux, Mac平台。
.以下以x86编译为例
cef下载:https://bitbucket.org/chromiumembedded/cef(含cef源码)
二进制成品下载:CEF Automated Builds
11/10/2022最新版 - 107.1.9+g1f0a21a+chromium-107.0.5304.110 / Chromium 107.0.5304.110 |
Minimal Distribution是精简版,
Sample Application是cefclient编译后的包,
Debug Symbols是Debug符号文件,
Release Symbols是Release符号文件
各函数参数说明文档
https://magpcss.org/ceforum/apidocs/projects/(default)/CefRequestHandler.html
编译前需要下载cmake转换为vs项目
下载cmake:Download | CMake
下载安装后打开软件
在Where is the source code编辑框中填入 cef解压包目录,
在Where to build the binaries编辑框中填入 cef解压包目录\build
点击Configure会提示选择生成的vs项目版本,
确定后会在列表框中罗列项目的一些可配置的宏及其它信息,
如果不需要修改就直接点击Generate生成,
完成后,就会在cef解压包目录\build中看到cef.sln了,打开解决方案就可以编译了
为cefclient和cefsimple项目是依赖libcef_dll_wrapper项目,
所以需要先编译libcef_dll_wrapper生成libcef_dll_wrapper.lib,
然后再编译其它两个。
文件夹介绍
- (1)cmake,该文件夹包含Cmake的一些宏定义,配置信息。
- (2)include,使用该库的所有头文件
- (3)libcef_dll,库的源代码
- (4)tests,测试程序demo源代码
- (5)Resource,资源文件,该资源文件是程序运行需要依赖的资源文件,含语言包,unicode支持等
- (6)Debug/Release,程序依赖的动态库/静态库。但不包括C++库:libcef_dll_wrapper.lib。
1、必须文件,缺少任意一个CEF将无法运行:
libcef.dll
这个不用多说,CEF的核心库文件,js引擎、网页加载渲染逻辑等都在其中,也是size最大的一个文件(Release版将近50M,Debug版超过500M)。
icudtl.dat
用来支持unicode,缺少这些文件虽然编译能通过,但是执行CefInitialize();的时候就会崩溃
natives_blob.bin
snapshot_blob.bin
V8引擎快照数据。
2、可选文件:
locales/
该目录包含CEF,Chromium和Blink使用的本地化资源。 CefSettings.locale指定需要加载的.pak文件。 只需要发布配置的区域对应的.pak文件。
如果没有区域设置将配置默认语言环境“en-US”。如果没有这些文件任意Web组件可能显示不正确。
cef.pak
cef_100_percent.pak
cef_200_percent.pak
这些文件包含了供CEF使用的区域无关资源,缺少这些文件任意Web组件可能显示不正确。(笔者当时缺少cef_100_percent.pak,cef_200_percent.pak两文件,导致视频控件不显示音量和最大化按钮)。
cef_extensions.pak
此文件包含扩展加载所需的非本地化资源传递`--disable-extensions`命令行标志来禁止使用文件。没有这个文件,依赖于扩展系统的组件将不起作用,如PDF查看器。
devtools_resources.pak
此文件包含Chrome开发者工具所需的非本地化资源,缺少这个文件,Chrome开发者工具将无法运行。
d3dcompiler_43.dll (Windows XP需要该文件)
d3dcompiler_47.dll (Windows Vista和更高版本的系统需要该文件)
libEGL.dll
libGLESv2.dll
Direct3D支持文件,如果缺少这些文件,HTML5在渲染2D画布,3D CSS,WebGL时将不起作用。
wow_helper.exe
用来支持Windows Vista 64位沙箱。如果没有这个文件,32位的CEF将无法在开启了沙箱的64位的Vista机器上运行。
最后上张图