【cef】2023最新windows编译全流程

🛫 导读

需求

需求

  • 添加MP3、MP4支持
  • 支持win7

文章由公司同事,杨大大提供,此致敬礼。

开发环境

版本号描述
文章日期2023-07-21
操作系统Win11 - 21H2 - 22000.1335

1️⃣ 准备工作

环境准备

  1. 准备一台干净的windows机器 不要安装任何杀软类软件,磁盘空间在150G以上
  2. 自己准备一个翻墙软件,v2ray就行
  3. 修改电脑区域设置,防止因为字符集导致的编译问题(如下图)
    在这里插入图片描述
  4. 安装git 等软件
    1. https://git-scm.com/
    2. https://tortoisegit.org/download/
  5. 安装python编译环境 推荐python3.10 默认安装就行,勾选上环境变量添加的选项

确定要编译的cef版本

以目前项目为例,我们需要一个支持win7系统的最高版本。在
https://bitbucket.org/chromiumembedded/cef/wiki/BranchesAndBuilding.md中找到对应的版本,如下图
在这里插入图片描述

1 根据图片中的要求,我们需要安装vs2019 和对应版本的windows sdk,具体安装步骤不再复述,需要注意,安装windows sdk时需要勾选上 debug tool工具,如下图
在这里插入图片描述

2️⃣ 搭建编译环境

保证可以访问chrome源码

使用三方软件,保证能访问google的chrome源码,设置成全局代理模式,在环境变量中加入全局代理配置(在浏览器设置里可以看全局代理配置的端口号)
在这里插入图片描述

创建代码目录

创建代码目录 以c:\my_cef 为例子,后续根目录皆指此目录
在my_cef下 创建source文件夹

下载自动构建脚本

下载自动构建脚本,放在代码根目录
https://bitbucket.org/chromiumembedded/cef/raw/master/tools/automate/automate-git.py

创建.boto文件

4 在根目录下创建.boto文件,文件内容如下

[Boto]
proxy = 127.0.0.1
proxy_port = 1081

系统环境变量中加入 NO_AUTH_BOTO_CONFIG=c:\my_cef.boto 如下图
在这里插入图片描述

checkout 版本号

如果你不想编译某个分支的最新版代码,可以指定具体的提交,只用设置CEF的提交就行,Chromium会跟着切换 即编译命令中 用到的checkout 版本号,默认是最新一次提交

具体的提交记录 可以在下面的网站上查
https://bitbucket.org/chromiumembedded/cef/commits/branch/5414
5414 是指cef版本,不同的版本改这个版本号就行
网页打开后可以看commit下面对应的 编号即可

创建2个编译脚本

在代码根目录下创建2个编译脚本文件

  • pull_code.bat 用来拉代码
  • build.bat 用来编译

pull_code.bat 文件内容如下

set CEF_USE_GN=1
set GN_DEFINES=is_official_build=true
set GYP_DEFINES=buildtype=Official
set GYP_MSVS_VERSION=2019
set CEF_ARCHIVE_FORMAT=tar.bz2
python automate-git.py --download-dir=c:\my_cef\source --branch=5414 --checkout=9fe3b50 --no-build --no-distrib --force-clean --force-clean-deps --no-depot-tools-update 

build.bat文件内容如下

set CEF_USE_GN=1
set GN_DEFINES=is_official_build=true use_thin_lto=false
@REM set GYP_DEFINES=buildtype=Official
set GYP_MSVS_VERSION=2019
set CEF_ARCHIVE_FORMAT=tar.bz2
@REM 添加MP3、MP4支持 使用此条指令
set GN_DEFINES=is_official_build=true use_thin_lto=false proprietary_codecs=true ffmpeg_branding=Chrome
set GYP_GENERATORS=ninja,msvs-ninja
set GN_ARGUMENTS=--ide=vs2019 --sln=cef --filters=//cef/*
set WIN_CUSTOM_TOOLCHAIN=1
set CEF_VCVARS=none
set GYP_MSVS_OVERRIDE_PATH=C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional
set SDK_ROOT=C:\Program Files (x86)\Windows Kits\10

set INCLUDE=C:\Program Files (x86)\Windows Kits\10\Include\10.0.20348.0\um;C:\Program Files (x86)\Windows Kits\10\Include\10.0.20348.0\ucrt;C:\Program Files (x86)\Windows Kits\10\Include\10.0.20348.0\shared;C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.29.30133\include;C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.29.30133\atlmfc\include;%INCLUDE%
set LIB=C:\Program Files (x86)\Windows Kits\10\Lib\10.0.20348.0\um\x86;C:\Program Files (x86)\Windows Kits\10\Lib\10.0.20348.0\ucrt\x86;C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.29.30133\lib\x86;C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.29.30133\atlmfc\lib\x86;%LIB%
set VS_CRT_ROOT=C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.29.30133\crt
set PATH=C:\Program Files (x86)\Windows Kits\10\bin\10.0.20348.0\x86;C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.16.27023\bin\HostX64\x64C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.29.30133\bin\Hostx86\x86;C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Redist\MSVC\14.29.30133\x86\Microsoft.VC142.CRT;%PATH%

python automate-git.py --download-dir=c:\my_cef\source --branch=5414 --checkout=9fe3b50 --no-update --build-log-file --verbose-build --force-distrib --force-build --with-pgo-profiles

总结

  1. checkout 版本号已经在上小节告知如何获取了
  2. 由于项目需要mp4的支持,所有build.bat中加入了对应的命令,不需要可以删除
  3. 一些vs安装路径,以及sdk安装路径每个人根据自己的具体环境来配置

3️⃣ 开始编译

下载代码

以管理员方式启动cmd.exe 切换到代码根目录。然后运行pull_code.bat

运行完成后会出现如下报错,关闭当前cmd窗口,重新打开一个新的cmd,进入C:\my_cef\source\depot_tools 下执行 update_depot_tools.bat 即可
在这里插入图片描述

真正的拉取代码

执行完第一步后,关闭cmd再打开一个新的,重新执行第一步操作 就开始真正的拉取代码了 根据网速而定 大概需要拉取40G的文件内容

修改.gclient

代码下载完成后,进入C:\my_cef\source\chromium文件夹,找到.gclient 文件
修改里面的内容 将checkout_pgo_profiles 改为True

运行build.bat脚本

打开cmd 切换到根目录下,运行build.bat脚本
等待漫长的编译过程,期间CPU 会被占满 啥也别干,等就可以了,编译完成后会有一个打包错误,忽略掉,关闭当前cmd。

执行make_distrib.bat

重新打开一个新的,切换到C:\my_cef\source\chromium\src\cef\tools 下执行 make_distrib.bat --ninja-build 命令即可

结果文件

打包完成后在C:\my_cef\source\chromium\src\cef\binary_distrib 下有我们想要的东西。
我们一般只要 cef_binary_109.1.17+g9fe3b50+chromium-109.0.5414.120_windows32.zip 这个文件即可 ,拿到后编译lib_cef_wrapper.lib就行 具体的编译方法就不讲了。
到这一步cef源码编译就结束了。

📖 参考资料

  • https://www.jianshu.com/p/d544fc2a2c67
  • https://blog.csdn.net/qq_43479892/article/details/125532424
  • https://blog.csdn.net/testcpp/article/details/125232376
  • https://bitbucket.org/chromiumembedded/cef/wiki/AutomatedBuildSetup.md

ps: 文章中内容仅用于技术交流,请勿用于违规违法行为。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夜猫逐梦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值