CEF127 编译指南 Linux篇 - 构建CEF Client(七)

1. 引言

在完成 CEF127 的编译工作后,我们需要了解如何正确运行编译后的程序。本文将详细介绍如何使用 CMake 构建示例程序,并成功运行 CEF 客户端。通过本文的指导,您将能够在 Linux 环境下顺利运行 CEF 应用程序。

2. 准备工作

2.1 确认二进制文件位置

首先,进入 CEF 二进制发布目录:

复制代码
cd ~/cef127/chromium_git/chromium/src/cef/binary_distrib/cef_binary_127.3.6+gc1e5ae6+chromium-127.0.6533.120_linux64

2.2 检查文件结构

验证目录内容:

复制代码
ls -la

确保存在 CMakeLists.txt 文件和必要的示例代码。

3. 创建构建目录

3.1 创建并进入构建目录

复制代码
mkdir build
cd build

📢 注意:保持构建目录清晰独立,便于管理和清理。

4. 配置 CMake 项目

4.1 使用 Unix Makefiles 生成器

复制代码
cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release ..

4.2 使用 Ninja 生成器(推荐)

复制代码
cmake -G "Ninja" -DCMAKE_BUILD_TYPE=Release ..

参数说明:

  • -G: 指定生成器类型
  • -DCMAKE_BUILD_TYPE=Release: 设置构建类型为发布版本
  • ..: 指定 CMakeLists.txt 所在的上级目录

5. 执行构建

5.1 使用 Unix Makefiles 构建

复制代码
make -j4 cefclient cefsimple

5.2 使用 Ninja 构建

复制代码
ninja cefclient cefsimple

📢 注意:-j4 参数表示使用 4 个并行任务,可以根据系统配置调整。

6. 运行 CEF 客户端

6.1 更改应用权限

根据输出的提示输入命令来更改应用权限

复制代码
EXE="/home/ym/cef127/chromium_git/chromium/src/cef/binary_distrib/cef_binary_127.3.6+gc1e5ae6+chromium-127.0.6533.120_linux64/build/tests/cefsimple/Release/chrome-sandbox" && sudo -- chown root:root $EXE && sudo -- chmod 4755 $EXE
EXE="/home/ym/cef127/chromium_git/chromium/src/cef/binary_distrib/cef_binary_127.3.6+gc1e5ae6+chromium-127.0.6533.120_linux64/build/tests/cefclient/Release/chrome-sandbox" && sudo -- chown root:root $EXE && sudo -- chmod 4755 $EXE

6.1 启动客户端程序

复制代码
sudo ./tests/cefclient/Release/cefclient --no-sandbox

参数说明:

  • --no-sandbox: 禁用沙箱模式运行
  • 使用 sudo 确保有足够权限

6.2 常见启动参数

复制代码
# 指定日志级别
./cefclient --log-severity=verbose

# 指定初始 URL
./cefclient --url=https://www.google.com

# 禁用 GPU 加速
./cefclient --disable-gpu

7. 结语

通过本文的指导,我们完成了 CEF 示例程序的构建和运行。从配置 CMake 项目到成功启动客户端,这个过程虽然看似简单,但需要注意很多细节。正确理解和使用各种构建选项和运行参数,对于开发基于 CEF 的应用程序至关重要。

本系列文章至此已经完整覆盖了从编译到运行的整个过程。如果您在实践中遇到问题,请参考故障排除部分,或查阅 CEF 官方文档获取更多详细信息。

相关推荐
John_ToDebug31 分钟前
Chrome 首次启动引导页里触发 Pref 设置,为什么主进程收不到 IPC
c++·chrome
小鹿软件办公32 分钟前
谷歌 Chrome 终于推出垂直标签页与更智能的阅读模式
前端·chrome
John_ToDebug1 小时前
Chromium 页面类型与 IPC 通信机制深度解析
前端·c++·chrome
淼淼爱喝水16 小时前
Ansible 基础模块实战作业详细教程
chrome·github·ansible
守城小轩17 小时前
Chromium 145 编译指南 Windows篇:获取源代码(五)
自动化·chrome devtools·浏览器自动化·指纹浏览器·浏览器开发
天***885218 小时前
系统自动启动管理,文件粉碎、软件卸载、WIFI密码查看、硬盘测速、系统优化等
chrome
Free Tester1 天前
手动访问网页用的chrome,和使用命令行指定端口启动的chrome,浏览器指纹是否一致
前端·chrome
ShineWinsu1 天前
Chrome安全机制深度解析技术文章
前端·chrome·安全
程序员 沐阳1 天前
从内容管控到硬件隔离:Chrome 安全防护体系深度拆解
前端·chrome·安全
淼淼爱喝水1 天前
Ansible 常用文件模块详解(copy、file、fetch)
chrome·git·github