要使用cef3,我们第一步就是要下载cef的源码包。
地址是:http://opensource.spotify.com/cefbuilds/index.html
下载完后,我们才能进行下一步编译。不过很多刚入门的小伙伴不太理解,这个下载的包里都包含那些东西,都是什么意思,今天我们就一起探究学习一下。(我们是在windows下开发,所以这篇文章也只是对windows版本的源码包进行探究)
对于源码包,解压后的目录是这样的:
这些目录或者文件都是什么作用呢?我们可以参考README.txt文件,里面对项目都有简要的说明。
-
cmake /: 包含所有目标共享的CMake配置文件。
-
Debug/Release/
:包含libcef.dll,libcef.lib和其他所需的组件
构建并运行基于CEF的应用程序的发布版本。通过
默认这些文件应该放在与之相同的目录中
可执行文件。包含运行cef程序所必需的组件。这些文件都应该放到可执行程序目录下。(libcef.lib 应该被包含到程序中,不必放到可执行目录下)
-
include/ :包含所有必需的CEF头文件。
-
libcef_dll/ :包含libcef_dll_wapper 静态库的源码。所有使用CEF C ++ API的应用程序都必须链接到该源代码。
-
Resouces/:
包含libcef.dll所需要的资源文件。默认的,这些文件应该放到和libcef.dll同一个目录下。该资源文件是程序运行需要依赖的资源文件,含语言包,unicode支持等
- test/ cef的例子demo
cefclient/:
cefsimple/:
ceftests/:
gtest/:
shared/:
对于文件:
- CMakeLists.txt:这个值最重要的,是生成所有项目的文件的基础。需要下载CMake,进行生成项目的工程文件. cef.sln 才能够在vs上进行编译,可以生成libcef_dll_wapper.dll 与test下的一些demo的测试程序。
- README.txt :就是简短的说明。
1.必须文件,缺少一个cef都无法运行的:
CEF核心库。也是最大的一个文件,js引擎,网页渲染等逻辑都在里面。
- libcef.dll
*崩溃报告库。
- chrome_elf.dll
Unicode支持数据。缺少这个文件,编译是可以通过的,不过执行CefInitialize()的时候,会崩溃。
- icudtl.dat
V8快照数据。
- natives_blob.bin
- snapshot_blob.bin
- v8_context_snapshot.bin
2.可选文件: 以下组件是可选的。如果他们失踪,CEF将继续
运行但任何相关功能可能会被破坏或禁用
*本地化资源。
可以使用完全禁用区域设置文件加载
CefSettings.pack_loading_disabled。locales目录路径可以是
使用CefSettings.locales_dir_path自定义。
*locales /
包含CEF,Chromium和Blink使用的本地化资源的目录。一个
.pak文件是基于CefSettings.locale从此目录加载的
值。只需要分发配置的区域设置。如果没有语言环境
配置默认语言环境“en-US”将被使用。没有这些文件
任意Web组件可能显示不正确。
*其他资源。
可以使用完全禁用包文件加载
CefSettings.pack_loading_disabled。资源目录路径可以是
使用CefSettings.resources_dir_path自定义。
-
cef.pak
-
cef_100_percent.pak
-
cef_200_percent.pak
这些文件包含CEF,Chromium和Blink使用的非本地化资源。
没有这些文件,任意Web组件可能会显示不正确。如果没有cef_100_percent.pak或cef_200_percent.pak(取决于您DPI),滚动条将显示为红色。如果您禁用pak加载,您也会遇到同样的问题。 -
cef_extensions.pak
此文件包含扩展加载所需的非本地化资源。
传递--disable-extensions
命令行标志以禁用此功能
文件。如果没有依赖于扩展系统的此文件组件,
例如PDF查看器,将无法运行。
*devtools_resources.pak
此文件包含Chrome Developer所需的非本地化资源
工具。如果没有此文件,Chrome开发者工具将无法运行。
*Angle和Direct3D支持。
- d3dcompiler_43.dll(Windows XP必需)
- d3dcompiler_47.dll(Windows Vista及更高版本所需)
- libEGL.dll
- libGLESv2.dll
如果没有这些文件,HTML5会加速内容,如2D画布,3D CSS和WebGL
不会起作用。
*SwiftShader支持。
-
swiftshader / libEGL.dll
-
swiftshader / libGLESv2.dll
如果没有这些文件,当GPU出现时,WebGL将无法在纯软件模式下运行
无法使用或已禁用。 -
Widevine CDM支持。
- widevinecdmadapter.dll
如果没有此文件播放,则Widevine投影内容将无法正常播放。
有关用法,请参阅cef_web_plugin.h中的CefRegisterWidevineCdm()函数。
- widevinecdmadapter.dll