Chromium内核浏览器编译记(五)Windows版本CEF编译

转载请注明出处:juejin.cn/spost/75160...

本文出自 容华谢后的博客

0.写在前面

本篇文章是用来记录编译Windows版本CEF的步骤和踩过的坑,以防止后续再用到的时候忘记,同时也希望能够帮助到遇到同样问题的同学。

简单介绍下CEF,CEF的全称是Chromium Embedded Framework(Chromium嵌入式框架),它是一个开源的软件框架,用于嵌入Chromium浏览器引擎到其他应用程序中。允许开发者将Chromium的强大的Web渲染引擎嵌入到他们自己的应用程序中,以实现内嵌的浏览器功能,目前支持Windows、Linux、macOS平台。

因为是Windows版本的编译,就没有使用虚拟机,步骤基本和Linux版本一致,安装环境、下载源码、修改源码支持Mp4、编译源码、生成CEF分发包。

1.准备工作

因为Chromium的源码都在墙外,所以在下载源码之前,先要开启代理。

1.1 安装应用

安装最新版本的Git和Python3就可以了,安装Python的时候注意要勾选自动配置环境变量。

安装Visual Studio 2022版本IDE,工作负载勾选使用C++的桌面开发,如果在编译过程中提示Windows 10 SDK错误,在微软官网下载一个单独的SDK安装包重新安装就可以。

1.2 配置depot_tools

首先建立一个工作文件夹比如cef,下载depot_tools.zip解压到cef目录中,在系统变量的PATH变量中,添加depot_tools路径。

下载地址:storage.googleapis.com/chrome-infr...

1.3 配置下载工具代理

在cef目录下新建一个**.boto**文件:

ini 复制代码
[boto]
proxy=127.0.0.1
proxy_port=端口号

然后在环境变量,系统变量中新建一个NO_AUTH_BOTO_CONFIG变量,写上boto文件的全路径。

2.源码下载

2.1 创建目录结构

直接右键新建目录和空白文件就可以了,最终的目录结构是这样的:

javascript 复制代码
~/cef/
    automate/
        automate-git.py
    chromium_git/
        cef/
        chromium/
        update.bat
    depot_tools/
    .boto

2.2 下载automate-git.py脚本

文本内容直接复制到automate目录下的automate-git.py文件中就可以。

文件地址:bitbucket.org/chromiumemb...

2.3 创建update.bat脚本

在chromium_git目录下新建一个update.bat脚本。

脚本内容:

ini 复制代码
python ..\automate\automate-git.py --download-dir=d:\cef\chromium_git --branch=7204 --chromium-checkout=138.0.7204.0 --depot-tools-dir=d:\cef\depot_tools --no-distrib --no-build

其中 --branch 是CEF的分支版本,可以指定需要的版本,如果需要最新版本直接去掉这个参数就可以,--chromium-checkout 是Chromium源码的Tag版本,如果不需要指定可以去掉。注意如果需要指定版本,CEF的版本和Chromium的版本要保持一致。

--download-dir 后的路径修改成你设备上的实际路径,--depot-tools-dir 改成在1.2中下载的depot_tools的路径。

2.4 下载源码

启动一个Windows PowerSell窗口,以管理员身份运行,首先设置代理与Git缓存。

ini 复制代码
$env:http_proxy = "http://127.0.0.1:7890"
$env:https_proxy = "http://127.0.0.1:7890"
git config --global https.postBuffer 524288000
git config --global http.postBuffer 524288000

然后执行update.bat指令,可以看到下面的进度提示:

提示这个就代表下载完了,如果中途下载失败了,重新执行上面的命令就可以了:

3.源码编译

3.1 支持音视频

源码下载完成后,需要修改下支持音视频,打开这个头文件:

chromium_git/chromium/src/third_party/ffmpeg/chromium/config/Chromium/linux/x64/config_components.h

arduino 复制代码
#define CONFIG_SIPR_PARSER 1 由0修改为1,启用FFmpeg。

3.2 生成工程

在chromium_git\chromium\src\cef目录下,新建create.bat文件,复制以下内容:

ini 复制代码
set GN_DEFINES=is_official_build=true use_thin_lto=false proprietary_codecs=true ffmpeg_branding=Chrome
set GN_DEFINES=use_sysroot=true symbol_level=1 is_cfi=false use_thin_lto=false use_vaapi=false ffmpeg_branding=Chrome proprietary_codecs=true is_official_build=true chrome_pgo_phase=0
set GN_ARGUMENTS=--ide=vs2022 --sln=cef --filters=//cef/*
call cef_create_projects.bat

然后PowerShell切换到此目录,执行create.bat命令,看到这个提示就代表构建成功了:

3.3 编译cefclient

切换到src目录下,终端输入下面的命令:

csharp 复制代码
ninja -C out/Release_GN_x64 cefclient

如果想要生成Debug版本,Release_GN_x64改成Debug_GN_x64就可以了。

编译过程十分漫长,大概六七个小时,看到下面的提示就代表编译成功了:

生成的文件如下:

3.4 生成CEF二进制分发包

当前在src目录下,切换到cef\tools目录下,执行下面的命令:

css 复制代码
./make_distrib.bat --ninja-build --minimal --x64-build

这个过程还比较快,出现下面的提示就成功了:

生成的文件如下:

到这里整个CEF就编译完成了。

生成的cefclient在/cef/chromium_git/chromium/src/out目录下

生成的分发包在/cef/chromium_git/chromium/src/cef/binary_distrib目录下

4.写在最后

编译中的大部分问题都是源码下载不全导致的,尝试重新下载,如果实在解决不掉,就删掉源码重新开始。

到这里,Chromium CEF源码的编译就完成了,有问题可以给我留言评论,谢谢。

相关推荐
guiyanakaung2 小时前
一篇文章让你学会 Compose Multiplatform 推荐的桌面应用打包工具 Conveyor
android·windows·macos
鹏多多2 小时前
让网页拥有App体验?PWA 将网页变为桌面应用的保姆级教程
前端·javascript·浏览器
李三岁_foucsli2 小时前
浏览器中dom解析的过程,及js、css对其影响,图文解析
javascript·浏览器
冷雨夜中漫步4 小时前
Java中如何使用lambda表达式分类groupby
java·开发语言·windows·llama
曼岛_5 小时前
[架构之美]解决Windows 10主机与Windows 10虚拟机之间无法拖拽复制问题
windows·架构
FL16238631297 小时前
[windows工具]PDFOCR识别导出Excel工具1.1版本使用教程及注意事项
windows·excel
will_net7 小时前
Linux入门(十八)read&函数
linux·运维·chrome
睡不着先生8 小时前
打造丝滑滚动体验:Scroll-driven Animations 正式上线!
css·chrome·html
巨龙之路8 小时前
如何在Windows上使用qemu安装ubuntu24.04服务器?
运维·服务器·windows