开发环境的搭建是 CEF 浏览器开发中至关重要的一步。正确配置开发环境不仅能提高开发效率,也能确保开发过程中的稳定性与可靠性。本文将结合最新的资料和技术方案,深入讲解如何搭建 CEF 编译与配置环境,正确配置 Windows SDK 与依赖库,以及如何配置和调试 VC++ 项目。
1. CEF 编译与配置:如何使用 CMake 编译 CEF,配置 VC++ 项目
CEF (Chromium Embedded Framework) 是一个基于 Chromium 的开源项目,用于将 Chromium 的浏览器功能嵌入到桌面应用程序中。CEF 编译与配置的过程较为复杂,尤其是在 Windows 环境下。开发者需要准备编译工具链、相关依赖库,并通过 CMake 配置生成 VC++ 项目文件。下面将详细介绍这一过程。
1.1 下载 CEF 源代码
首先,需要从 CEF 官方网站或 GitHub 仓库下载 CEF 的源代码。下载的方式有两种:
- 使用 Git:从 CEF 官方 GitHub 仓库中克隆源码,
git clone
命令可以帮助你下载 CEF 的源代码。 - 使用 CEF Binary:如果不需要修改 CEF 内核源码,可以直接下载预编译的二进制包。
推荐使用 CEF_binary
,即已编译好的版本,避免了编译过程中繁琐的设置。对于需要修改 CEF 内核的开发者,可以通过源代码进行定制和编译。
1.2 CEF 编译准备
-
安装 Visual Studio 和 Windows SDK:为了编译 CEF,需要确保已安装正确版本的 Visual Studio 和 Windows SDK。推荐使用 Visual Studio 2019 或更高版本,搭配 Windows 10 SDK。
-
安装 CMake:CMake 是跨平台的自动化构建系统,用于生成构建文件。在 Windows 环境下使用 CMake 来配置 CEF 项目是一个标准做法。
-
下载依赖库:CEF 依赖于多种库,包括:
- Google’s V8 引擎(JavaScript 引擎)
- WebKit(布局引擎)
- Chromium(基础浏览器框架)
在 CEF 编译过程中,CMake 会自动下载这些依赖库,或根据配置提示下载。
1.3 配置 CEF 编译环境
通过 CMake 配置 CEF 编译环境,步骤如下:
-
创建构建目录: 在下载并解压 CEF 源代码之后,建议在一个新的目录中创建构建文件夹。例如,
cef_build
。 -
配置 CMake: 在 CMake 配置工具中,选择
cef
源代码目录,并选择目标编译目录(即cef_build
)。根据需要设置平台和编译选项:cmake -G "Visual Studio 16 2019" -A x64 -D CEF_USE_GN=TRUE -D CEF_INCLUDE_GN=TRUE ..
参数说明:
-G
:指定编译器生成器,这里我们使用 Visual Studio 2019。-A x64
:指定构建 64 位平台。-D CEF_USE_GN=TRUE
:启用 GN(Google's Ninja Build System)。-D CEF_INCLUDE_GN=TRUE
:包含 GN 配置文件。
-
生成 Visual Studio 项目文件: 在 CMake 配置完成后,生成 Visual Studio 项目文件,进入构建目录并执行:
cmake --build . --config Release
-
编译 CEF: 完成 CMake 配置后,打开 Visual Studio,并通过
Release
配置编译整个 CEF 项目。这一过程可能需要较长时间,取决于你的硬件配置。
1.4 配置 VC++ 项目
在编译 CEF 成功后,你需要将 CEF 与 VC++ 主程序进行集成。VC++ 项目通常使用 Visual Studio 开发,可以通过以下步骤将 CEF 引入主程序:
-
设置 CEF 依赖库: 在 VC++ 项目中,需要链接到 CEF 编译后的依赖库文件。你需要将 CEF 的
libcef.lib
文件添加到 VC++ 项目中的链接器设置中。 -
配置头文件路径: 在 VC++ 项目中,添加 CEF 源代码的头文件路径,确保 CEF 的 API 可以被正确引用。
-
初始化 CEF 环境: 在主程序的入口点(
main
或WinMain
)中,初始化 CEF 库:CefMainArgs main_args(hInstance); CefRefPtr<MyApp> app = new MyApp(); CefSettings settings; CefInitialize(main_args, settings, app.get(), nullptr);
这段代码会初始化 CEF 环境,并设置应用程序的运行参数。
-
编写交互代码: 在主程序中,需要编写与 CEF 内核交互的代码,例如创建浏览器窗口、加载网页内容等。
2. Windows SDK 和依赖库:确保使用正确版本的 SDK、依赖项配置与解决方案创建
2.1 选择合适的 Windows SDK
Windows SDK(Software Development Kit)是开发 Windows 应用程序所必需的工具集。CEF 对 SDK 版本有一定要求,特别是在 Windows 7 及更高版本的支持上,建议使用 Windows 10 SDK 及以上版本。
-
Windows 10 SDK:是目前最新的 SDK,包含了对 Windows 10 系统功能的支持。它支持 UWP(通用 Windows 平台)、Win32 API、DirectX 等开发需求。
-
Windows 8.1 SDK:在一些老旧项目中,可能需要使用 Windows 8.1 SDK,特别是为了支持 Windows 7 操作系统的兼容性。
-
Windows 7 SDK:如果你需要支持较旧的操作系统,可以使用 Windows 7 SDK。CEF 可以支持 Windows 7 及以上版本,但需要确保编译环境正确配置。
2.2 配置依赖项
CEF 编译时需要依赖多个库,以下是一些常见的依赖库:
- V8 引擎:JavaScript 引擎,必须在 CEF 配置中指定。
- WebKit:布局引擎,负责处理 HTML 和 CSS 渲染。
- Skia:图形渲染库,用于图形绘制。
- ICU:用于国际化和字符集处理。
在 CMake 配置时,必须确保这些依赖项能正确下载和配置。一般情况下,CEF 会自动下载依赖库,但在一些特定情况下(如代理网络或定制化需求),开发者可能需要手动配置这些库。
2.3 解决方案创建
确保你的 VC++ 项目能够正确与 CEF 构建生成的库和头文件链接。通常,VC++ 项目需要设置以下内容:
-
设置库路径: 在 VC++ 项目中,确保 CEF 的
lib
目录被加入到库路径中。 -
链接 CEF 库文件: 在项目的链接设置中,添加
libcef.lib
和其他必要的 CEF 依赖库。 -
设置预编译头文件: 为了提高编译效率,设置 CEF 和 VC++ 项目的预编译头文件,避免重复编译同样的代码。
3. IDE 配置与调试工具:Visual Studio 配置与调试,CEF 与 VC++ 的协同调试
3.1 配置 Visual Studio
Visual Studio 是最常用的 Windows 开发 IDE,可以通过以下步骤来配置和调试 CEF 项目:
-
安装 Visual Studio: 确保安装了 Visual Studio 的 C++ 开发工具和调试工具。推荐使用 Visual Studio 2019 或更高版本。
-
安装 CMake 插件: 如果使用 CMake 构建 CEF,确保在 Visual Studio 中安装了 CMake 插件,以便通过 Visual Studio 直接管理和编译 CMake 项目。
-
配置调试器: 在 Visual Studio 中,可以使用
Attach to Process
功能来进行调试。CEF 采用多进程架构,因此你需要同时调试主进程和渲染进程。可以在 Visual Studio 中通过选择进程 ID 来附加到正确的进程。
3.2 CEF 与 VC++ 协同调试
在 CEF 开发中,调试主进程和渲染进程非常重要。Visual Studio 提供了强大的调试功能,可以同时调试多个进程。
-
主进程调试: 使用 Visual Studio 的调试工具(如断点、内存查看器等)来调试主进程中的代码。通过
Attach to Process
,选择主程序进程进行调试。 -
渲染进程调试: CEF 在默认情况下会启动多个渲染进程来处理浏览器内容。可以在 Visual Studio 中附加到渲染进程,使用多线程调试功能来查看渲染过程中的问题。
-
调试 Web 内容: 使用 CEF 提供的内置 Web 调试工具,例如
DevTools
(Chromium Developer Tools),可以调试嵌入在应用程序中的网页内容。
通过上述详细的开发环境搭建和配置,开发者可以顺利地在 Windows 平台上搭建并开发基于 CEF 的浏览器应用程序。这一过程涵盖了从 CEF 编译与配置到 Visual Studio 调试的各个环节,提供了一个全面的解决方案,确保开发者能够在实际开发中高效、顺利地进行工作。
关于作者:
15年物联网开发、带过10-20人的团队,多次帮助公司从0到1完成项目开发,在TX等大厂都工作过。当下为退役状态,写此篇文章属个人爱好。本人10多年开发经验期间手机了很多开发课程等资料,需要可联系我