编译CEF
概述
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发布版本二进制文件旁边,并且需要相同的名字和版本 |
推荐下载标准版(因为里面不仅有源码,还有示例程序可供参考,并且你可以自由编译出Debug或Release版本的库和应用程序)
Standard Distribution 目录结构
文件夹 | 用途 |
---|---|
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
cmake安装好后,可以到开始菜单去找,以c开头的就能找到,打开cmake-gui
源码路径就是解压后的cef路径,binaries路径就是编译到哪个文件夹,选择build目录。然后单击Configure(配置)按钮,然后单击 Generate(生成)按钮。至此,就会在build目录生成相应的构建了。最后点击 Open Project 按钮,就会自动使用VS打开该项目
使用VS编译项目
使用VS打开项目后,解决方案结构如下图
项目 | 作用 |
---|---|
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的具体路径
拓展知识
著名的跨平台项目 Electron,在内部就是嵌入了CEF内核。
Electron是一款使用JavaScript,HTML和CSS构建跨平台的桌面应用程序。它在内部使用CEF内核,JavaScript通过谷歌的V8引擎,与C++进行通信,获取调用本地计算机上方法的能力
- 点赞
- 收藏
- 关注作者
评论(0)