CEF 二进制分发包目录结构分析

基于cef_binary_111.2.7+gebf5d6a+chromium-111.0.5563.148_windows64此版本进行分析,版本差异太大会有所差异。

基本文件结构

├─cmake
├─Debug
├─include
│  ├─base
│  │  └─internal
│  ├─capi
│  │  ├─test
│  │  └─views
│  ├─internal
│  ├─test
│  ├─views
│  └─wrapper
├─libcef_dll
│  ├─base
│  ├─cpptoc
│  │  ├─test
│  │  └─views
│  ├─ctocpp
│  │  ├─test
│  │  └─views
│  └─wrapper
├─Release
├─Resources
│  └─locales
└─tests
    ├─cefclient
    │  ├─browser
    │  ├─common
    │  ├─renderer
    │  └─resources
    │      ├─extensions
    │      │  └─set_page_color
    │      └─win
    ├─cefsimple
    │  └─res
    ├─ceftests
    │  ├─extensions
    │  ├─resources
    │  │  ├─net
    │  │  │  └─data
    │  │  │      └─ssl
    │  │  │          └─certificates
    │  │  └─win
    │  └─views
    ├─gtest
    │  ├─include
    │  │  └─gtest
    │  ├─src
    │  └─teamcity
    │      ├─include
    │      └─src
    └─shared
        ├─browser
        ├─common
        ├─renderer
        └─resources
  • cmake:包含所有目标共享的CMake配置文件

  • Debug:包含构建和运行基于CEF的应用程序的调试版本所需的libcef.dll、libcef.lib和其他组件。默认情况下,这些文件应该与可执行文件放在同一目录中,并将作为构建过程的一部分复制到那里。

  • include:包含所有必需的CEF头文件

  • libcef_dll:包含libcef_dll_wrapper静态库的源代码,所有使用CEF C++API的应用程序都必须链接该库。

  • Release:包含libcef.dll、libcef.lib和其他必需的组件构建并运行基于CEF的应用程序的发布版本。通过默认情况下,这些文件应与可执行文件,并将作为构建过程的一部分复制到那里。

Resources:包含libcef.dll所需的资源。默认情况下,这些文件应与libcef…dll放在同一目录中,并将作为构建过程的一部分复制到那里。

  • tests/ 演示 CEF 用法的测试目录。

    • cefclient:包含配置为使用此发行版中的文件生成的 cefclient 示例应用程序。此应用程序演示了各种 CEF 功能。

    • cefsimple:包含配置为使用此发行版中的文件生成的 cefsimple 示例应用程序。此应用程序演示了创建浏览器窗口所需的最少功能。

    • ceftests:包含执行CEF API的单元测试。

    • gtest:包含ceftests目标使用的Google C++测试框架。

    • shared:包含由cefclient和ceftests目标共享的源代码。

发布文件目录结构

即发布之后的可执行文件所在目录含有的文件

│  chrome_100_percent.pak
│  chrome_200_percent.pak
│  chrome_elf.dll
│  d3dcompiler_47.dll
│  debug.log
│  icudtl.dat
│  libcef.dll
│  libEGL.dll
│  libGLESv2.dll
│  resources.pak
│  snapshot_blob.bin
│  tree.txt
│  v8_context_snapshot.bin
│  vk_swiftshader.dll
│  vk_swiftshader_icd.json
│  vulkan-1.dll
│      
└─locales
        af.pak
	    ...
        zh-CN.pak

必需组件

没有它们,CEF将无法运作。

  • libcef.dll:CEF核心库
  • chrome_elf.dll:崩溃报告库
  • icudtl.dat:Unicode支持数据
  • snapshot_blob.bin:V8快照数据
  • v8_context_snapshot.bin:V8快照数据

可选组件

以下组件是可选的。如果它们丢失,CEF将继续运行,但任何相关功能都可能损坏或禁用。

本地化资源

使用CefSettings.pack_loading_disabled可以完全禁用区域设置文件加载。可以使用CefSettings.locales_dir_path自定义区域设置目录路径。

  • locales/:包含CEF、Chromium和Blink使用的本地化资源的目录。根据CefSettings.locae值从该目录加载一个.pak文件。只需要分发已配置的区域设置。如果未配置区域设置,则将使用默认的区域设置“en-US”。如果没有这些文件,任意Web组件可能会显示错误。

其他资源

使用CefSettings.Pack_loading_disabled可以完全禁用包文件加载。可以使用CefSettings.resources_dir_path自定义资源目录路径。

  • chrome_100_percent.pak
  • chrome_200_percent.pak
  • resources.pak

这些文件包含CEF、Chromium和Blink使用的非本地化资源。如果没有这些文件,任意Web组件可能会显示错误。

Direct3D 支持

  • d3dcompiler_47.dll

支持GPU加速渲染HTML5内容,如2D画布、3D CSS和WebGL。如果没有此文件,当启用GPU加速时(大多数情况下为默认设置),上述功能可能会失败。建议使用此捆绑版本,而不是依赖可能旧的、未经测试的系统安装版本。

ANGLE支持

  • libEGL.dll
  • libGLESv2.dll

支持渲染HTML5内容,如2D画布、3D CSS和WebGL。如果没有这些文件,上述功能可能会失败。

SwANGLE 支持

  • vk_swiftshader.dll
  • vk_swiftshader_icd.json
  • vulkan-1.dll

支持使用SwiftShader的Vulkan库作为ANGLE的Vulken后端对HTML5内容(如2D画布、3D CSS和WebGL)进行软件渲染。如果没有这些文件,当GPU加速被禁用或不可用时,上述功能可能会失败。

来源于分发包内README.txt

你可能感兴趣的:(CEF,CEF,chromuim,c++)