编译CEF

举报
福州司马懿 发表于 2022/11/08 20:55:30 2022/11/08
【摘要】 概述Chromium Embedded Framework (CEF) 是个基于 Google Chromium 项目的开源 Web browser 控件,支持 Windows, Linux, Mac 平台。除了提供 C/C++ 接口外,也有其他语言的移植版。因为基于Chromium,所以CEF支持webkit & Chrome中实现的 HTML5 的特性,并且在性能上面,也比较接近 Ch...

概述

Chromium Embedded Framework (CEF) 是个基于 Google Chromium 项目的开源 Web browser 控件,支持 Windows, Linux, Mac 平台。除了提供 C/C++ 接口外,也有其他语言的移植版。

因为基于Chromium,所以CEF支持webkit & Chrome中实现的 HTML5 的特性,并且在性能上面,也比较接近 Chrome。

CEF还提供的如下特性:自定义插件、自定义协议、自定义 JavaScript 对象和扩展;可控制的 resource loading, navigation, context menus 等等。

下载CEF

访问 CEF 官网 https://cef-builds.spotifycdn.com/index.html,下载对应的工程

名称 含义(英文) 含义(中文)
Standard Distribution Standard binary distribution. Includes header files, libcef_dll_wrapper source code, binary files, CMake configuration files and source code for the cefclient and cefsimple sample applications. See the included README.txt file for usage and build requirements 标准二进制发行版。包括头文件、libcef_dll_wrapper源代码、二进制文件、CMake配置文件以及cefclient和cefsimple示例应用程序的源代码。使用和构建要求请参阅随附的 README.txt 文件
Minimal Distribution Minimal binary distribution. Includes header files, libcef_dll_wrapper source code, Release build binary files and CMake configuration files. Does not include Debug build binary files or sample application source code. See the included README.txt file for usage and build requirements 最小二进制分布。包括头文件、libcef_dll_wrapper源代码、发布构建二进制文件和CMake配置文件。不包括调试生成二进制文件或示例应用程序源代码。使用和构建要求请参阅随附的 README.txt 文件
Sample Application Release build of the cefclient sample application. See the included README.txt file for usage requirements 发布版本的 cefclient 示例构建程序。使用和构建要求请参阅随附的 README.txt 文件
Debug Symbols Debug build symbols. Must be extracted and placed next to the CEF Debug binary file with the same name and version 调试版本。必须被提取并放置在CEF调试版本二进制文件旁边,并且需要相同的名字和版本
Release Symbols Release build symbols. Must be extracted and placed next to the CEF Release binary file with the same name and version. 发布版本。必须被提取并放置在CEF发布版本二进制文件旁边,并且需要相同的名字和版本

图片.png

推荐下载标准版(因为里面不仅有源码,还有示例程序可供参考,并且你可以自由编译出Debug或Release版本的库和应用程序)

Standard Distribution 目录结构

图片.png

文件夹 用途
build 此目录是cmake编译后的目录(我这里已经编译过了,所以才有)
cmake 包含所有目标共享的CMake配置文件
Debug 包含 libcef.dll、 libcef.lib 和构建运行基于 CEF 的应用程序所需的其他组件的调试版本。默认情况下,这些文件应该放在与可执行文件相同的目录中,并作为构建过程的一部分复制到那里。CEF动态库(libcef.dll on Windows, libcef.so on Linux, “Chromium Embedded Framework.framework” on OS X)
include 包含所有必需的CEF头文件
libcef_dll 包含libcef_dll_wrapper静态库的源代码,所有使用CEF C++API的应用程序都必须链接该库
Release 同Debug。包含 libcef.dll、 libcef.lib 和其他需要构建并运行基于CEF 的应用程序的发布版本
Resources 包含 libcef.dll 所需的资源
tests 演示CEF的用法demo及测试用例等

使用cmake构建CEF的VS程序

cmake官网为 https://cmake.org/,首先下载并安装cmake

图片.png

cmake安装好后,可以到开始菜单去找,以c开头的就能找到,打开cmake-gui

图片.png

源码路径就是解压后的cef路径,binaries路径就是编译到哪个文件夹,选择build目录。然后单击Configure(配置)按钮,然后单击 Generate(生成)按钮。至此,就会在build目录生成相应的构建了。最后点击 Open Project 按钮,就会自动使用VS打开该项目

图片.png

使用VS编译项目

使用VS打开项目后,解决方案结构如下图

图片.png

项目 作用
ALL_BUILD 是cmake自动生成的辅助工程
cef_gtest 和 ceftests 测试模块
cefclient 一个包含CEF各种API演示的浏览器程序Demo
cefsimple 一个简单的CEF浏览器程序Demo
libcef_dll_wrapper 对libcef库的C++代码封装

如果要运行范例,那么就启动 cefclient 或 cefsimple 程序即可
如果只需要cef的dll,那么对 libcef_dll_wrapper 项目,右击生成即可

在相应项目上右击,选择属性,可以看到生成的dll或exe的具体路径

图片.png

拓展知识

著名的跨平台项目 Electron,在内部就是嵌入了CEF内核。

Electron是一款使用JavaScript,HTML和CSS构建跨平台的桌面应用程序。它在内部使用CEF内核,JavaScript通过谷歌的V8引擎,与C++进行通信,获取调用本地计算机上方法的能力

图片.png

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。