CPU:Intel E31275 3.4G
内存:16G
硬盘:500G固态硬盘
depot_tools commit:963e01c76c
CEF Branch:5563
CEF commit:ebf5d6ab43c61ebd6ece0c504e15fe73b8da59d6
Chromium Version:111.0.5563.148
Visual Studio 2019
Windows 10 SDK 10.0.20348.0
使用vs2019编译Chromium支持的最后一版本是111,后面版本需要vs2022
Chromium支持win7的最后一版本是109
中文操作系统需要修改英文模式
(1)打开Windows 设置,选择时间和语言
(2)选择区域选项,将国家或地区设置成美国
(3)选择语言选项,点击添加语言,选择英语(美国),下一步勾选设置为我的Windows显示语言
(4)完成语言包的切换后会要求注销账户,根据提示注销
(5)重新登录账户
(6)回到刚才的语言选项,点击管理语言设置
(7)点击更改系统区域设置,选择英语(美国),勾选 Bate 版:使用 Unicode UTF-8 提供全球语言支持 选项
(8)点击确定,按照提示重启系统,重启完成后会将语言设置成英文
或者添加系统参数
set PYTHONLEGACYWINDOWSSTDIO=utf8
set PYTHONIOENCODING=utf8
set PYTHONUTF8=1
set http_proxy=http://127.0.0.1:10809
set https_proxy=http://127.0.0.1:10809
git config --global http.proxy %http_proxy%
git config --global https.proxy %https_proxy%
set BOTO_CONFIG=C:\code\boto.cfg
set NO_AUTH_BOTO_CONFIG=C:\code\boto.cfg
boto.cfg
[Boto]
proxy=127.0.0.1
proxy_port=10809
proxy_type=http
取消代理
set http_proxy=
set https_proxy=
git config --global unset http.proxy
git config --global unset https.proxy
官网构建chromium方法
windows_build_instructions
官网构建cef方法
MasterBuildQuickStart
官方构建cef成品下载地址
CEF Automated Builds
官方jcef git地址
GitHub - jcefmaven/jcefbuild: Builds for JCef
Visual Studio版本和SDK版本可查看:BranchesAndBuilding
Visual Studio历史版本下载地址
运行以下命令进行安装,安装Visual Studio时候可以不装windows sdk,后面手动下载安装
$PATH_TO_INSTALLER.EXE ^
--add Microsoft.VisualStudio.Workload.NativeDesktop ^
--add Microsoft.VisualStudio.Component.VC.ATLMFC ^
--add Microsoft.VisualStudio.Component.VC.Tools.ARM64 ^
--add Microsoft.VisualStudio.Component.VC.MFC.ARM64 ^
--includeRecommended
安装windows sdk
Windows SDK下载地址按需下载
安装时候必须勾选Debugging Tools for windows
md C:\code\automate
md C:\code\chromium_git
md C:\code\depot_tools
下载 depot_tools.zip,解压到depot_tools文件夹
运行"update_depot_tools.bat" 安装python和git
cd c:\code\depot_tools
update_depot_tools.bat
下载 automate-git.py 放到 automate文件夹
1.Path 新增一个路径c:\code\depot_tools
2.创建一个系统变量DEPOT_TOOLS_WIN_TOOLCHAIN 值0
在C:\code\chromium_git
创建update.bat
,内容如下
set download_dir=c:\code\chromium_git
set depot-tools-dir=c:\code\depot_tools
set cef_branch=5563
set GN_DEFINES=use_jumbo_build=true ffmpeg_branding=Chrome proprietary_codecs=true
set GN_ARGUMENTS=--ide=vs2019 --sln=cef --filters=//cef/*
python ..\automate\automate-git.py --download-dir=%download_dir% --depot-tools-dir=%depot-tools-dir% --branch=%cef_branch% --no-distrib --no-build
设置好代理后 执行脚本,会自动拉取cef和chromium的源码
总共20G左右
一次运行不成功就运行多次,知道不报错为止
在C:\code
创建autobuild.bat,内容如下
set download_dir=c:\code\chromium_git
set depot-tools-dir=c:\code\depot_tools
set cef_branch=5414
set GN_DEFINES=proprietary_codecs=true ffmpeg_branding=Chrome is_official_build=true is_debug=false symbol_level=0 enable_nacl=false
set GYP_MSVS_VERSION=2019
set CEF_ARCHIVE_FORMAT=tar.bz2
python automate/automate-git.py --download-dir=%download_dir% --depot-tools-dir=%depot-tools-dir% --branch=%cef_branch% --minimal-distrib --client-distrib --force-clean --x64-build --with-pgo-profiles --no-debug-build --no-depot-tools-update --no-chromium-update --force-config
自动构建并打包,打包到C:\code\chromium_git\chromium\src\cef\binary_distrib目录下
参数名称 | 参数含义 |
--minimal-distrib |
最小打包 |
--client-distrib |
客户端打包 |
--force-clean |
强制清理src中的out和cef,并重新下载cef |
--x64-build |
64位构建,不加此参数为32位构建 |
--with-pgo-profiles |
pgo插件? |
--no-debug-build |
不构建debug |
--no-depot-tools-update |
不更新depot-tools |
--no-chromium-update |
不更新chromium |
--force-config | 强制更新.gclient配置 |
拉取代码后
切换到目录 C:\code\chromium_git\chromium\src\cef
创建create.bat
内容如下
set GN_DEFINES=use_jumbo_build=true ffmpeg_branding=Chrome proprietary_codecs=true is_component_build=false
set GN_ARGUMENTS=--ide=vs2019 --sln=cef --filters=//cef/*
call cef_create_projects.bat
发布时记得设置is_component_build = false
运行create.bat后,out成功生成
切换到C:\code\chromium_git\chromium\src
编译chromium内核
ninja -C out\Release_GN_x64 cef
1)同步chromium代码时候要使用官方提供方式下载,不要直接使用git同步,不然会出现构建时间异常的问题。
造成C:\code\chromium_git\chromium\src\build\util
LASTCHANGE.committime文件中,值为0
LASTCHANGE文件中,LASTCHANGE_YEAR=0
出现如下报错
比如报这样的错
git log -1 --format=%H %ct
比如报这样的错
python3.exe ../../build/write_build_date_header.py gen/base/generated_build_date.h -2142000
正常这两个文件应该是
LASTCHANGE
LASTCHANGE=168eebf2055fd26ca8c71787b7b3f9fe7c90d13d-refs/branch-heads/5414@{#1459}
LASTCHANGE_YEAR=2023
LASTCHANGE.committime
1674498815