序章回顾
其实,在此之前,我已经发表过如何在Windows下编译Chromium及前期环境准备
的系列文章了。
那么,既然之前已然撰写过了,缘何又出这么一篇类似的文章呢?
倘若你看过我那几篇关于windows编译Chromium
的系列文章,你或许就会明白我写这篇文章的意义了。
可假使你还没看过,也没关系,毕竟彼时windows系统
版本还处于win8.1
,机器很久了,光是编译,就费了两天一夜
,期间CPU
一直处于高负荷状态,途中不能操作任何事物,虽然到最后是编译出来。
然而,当我双击打开刚刚编译出来的chrome.exe
时,却并不能打开。
花费了这么长的时间来编译,可最终却不能打开,气得我一度将out\Default
删除掉,重新编译它,然而,又将是一个漫长的编译过程。
很显然,导致编译时间过长的罪魁祸首
就是我的那台(为了区别于赤巨资购买了可用于把玩Mechine Learning
的新笔记本)笔记本过于老旧,虽然我期间也为这台笔记本,把内存增加到了16G
,可终究还是无法补救其卡顿
的`悲惨命运。
新电脑拉开了新篇章
对于那台老旧电脑,若用来编译大型项目(诸如:Chromium
)时,它将是有心无力
、廉颇老矣,善能战否?
可即便是不去编译项目,光是打开号称宇宙界最耗内存的微信
,与我弟视频,期间是不能运行其他软件,否则的话,它就直接闪退。
凡此种种缘故,也正借artificial intelligence
(AI)这股强劲的风,我便有了买台新点电脑的预算。
其实,也在新电脑编译过chromium 103.0.5060.66
,可最终我还是选择了编译chromium 最新版
(最新版只限于截稿前),毕竟这都是高配置的电脑,何不编译最新版本呢,之前那台电脑是受到客观因素,故而编译了Chromium 103.0.5060.66
这个版本。
系统要求
- 一台至少具有 8GB RAM 的 x86-64 计算机。强烈建议超过 16GB。
- NTFS 格式的硬盘驱动器上至少有 100GB 的可用磁盘空间。FAT32 将不起作用,因为某些 Git 包文件大于 4GB。
- Visual Studio 的适当版本,如下所述。
- Windows 10 或更高版本
visual studio
新版Chromium
需要 Visual Studio 2022 (>=17.0.0) 才能构建。Visual Studio
还可用于调试 Chromium
。使用 clang-cl
编译器,但需要 Visual Studio
的头文件、库和一些工具。如果 Visual Studio Community Edition
的许可证适合您,则应该可以正常工作。必须安装“使用 C++ 进行桌面开发”组件和“MFC/ATL 支持”子组件
。这可以通过将这些参数传递给 Visual Studio
安装程序从命令行完成。
这跟我之前安装visual studio 2019 community
一样的。对于Chromium
每个版本所对应的visual studio
版本要求也各不相同。
Windows SDK
- Windows 11 SDK 版本
10.0.22621.2428
。这可以单独安装,也可以通过选中 Visual Studio 安装程序中的相应框来安装。 - (
Windows 11)SDK
调试工具10.0.22621.755
或更高版本。需要此版本的调试工具才能支持读取Chrome
用于允许大于4 GiB
的PDB
的大页面PDB
。这可以在安装匹配的Windows SDK
版本后从以下位置安装:控制面板 -> 程序和功能 -> Windows 软件开发工具包 [版本] -> 更改 -> 适用于 Windows 的调试工具。如果在 ARM64 Windows 上构建,则需要从另一台计算机手动复制 Debuggers\x64 目录,因为它没有安装在 ARM64 上,并且需要它,无论您是在 ARM64 上构建 Chromium for x64 还是 ARM64。
警告:在足够旧版本的 Windows(1909 或更早版本)上,使用 26100 SDK 时,dawn(或相关组件)可能会失败,并出现与 D3d 相关的错误。这是因为新 SDK 中的 d3dcompiler_47.dll 文件会尝试动态链接旧系统上默认不存在的通用 C 运行时版本。如果您遇到这些错误,可以更新系统上的 UCRT,或者安装 22612 SDK 并使用其中包含的 d3dcompiler_47.dll 文件,该文件会静态链接 UCRT。
此问题也可能表现为 DLL 无法加载 .__CxxFrameHandler4
Chromium
每个版本编译环境准备,都可在源码目录下找到每个系统的build
文档说明。
对 git 做相应的配置
$ git config --global user.name "My Name"
$ git config --global user.email "my-name@chromium.org"
$ git config --global core.autocrlf false
$ git config --global core.filemode false
$ git config --global core.preloadindex true
$ git config --global core.fscache true
$ git config --global branch.autosetuprebase always
虽然不一定是必需的,但将 git 配置为允许长路径支持(超出 Windows MAX_PATH限制)可能会有所帮助:
$ git config --global core.longpaths true
下载 depot_tools 及配置环境变量
depot_tools
是google
内部工具,用来管理项目,它内置了python
和git
,所以在配置环境变量时,必须将它配在python
和git
前,要不然的话,会报错。
下载地址 https://storage.googleapis.com/chrome-infra/depot_tools.zip
编译 Chromium
1、初始化 depot_tools
打开一个
terminal
,输入以下命令,在此之前,你得设置好网络
(你应该懂得!)gclient
2、在你电脑任何一个盘符下,新建
chromium
文件夹(当然你也可以起其他名称,这点随你意。)mkdir chromium && cd chromium
3、
fetch chromium
源码。fetch chromium
如果您不想要完整的存储库历史记录,可以通过将标志添加到 来节省大量时间。
--no-history
fetch
预计即使在快速连接上,该命令也需要一个多小时,而在较慢的连接上则需要许多小时。您应该配置您的 PC,使其在获取过程中不会进入睡眠或休眠状态,否则可能会发生错误。如果在获取子存储库时出现错误,那么您可以重新开始,或者您可以通过转到
chromium/src
目录并运行以下命令来纠正它们:gclient sync
4、生成构建文件。
$ gn gen out\Default
5、开始编译。
autoninja -C out\Default
编译的快慢,取决于你电脑的配置,我这台新电脑也得花上3个小时多。
运行编译出来的chromium
经过漫长的编译,这台新电脑终是不辱使命
的完成了它首次编译如此巨大的工程。
我双击chrome.exx
这个可执行文件,闪现在我眼前的是一个浏览器。