说在前面的话
或许你在看到文章标题中的windows8.1,难免会让你望而却步。
谁说不是呢!毕竟按chromium官方文档要求,win8.1是达不到编译 chromium高版本的要求的。
但不管怎么样,我的win8.1电脑最终还是编译出了chromium,足以说明win8.1系统编译chromium是可行的。
虽然在编译期间,占有了电脑大量使用时间,好在我都是在白天出门前,电脑开着让它静静地build。
让我庆幸的是,在那漫长的编译过程中,竟没有因errorhuofailed而中断,就连warning也是瞧不见身影。
编译途中出现error或failed总是再所难免`的,但却平添了我们去解决该问题的时间。
下载 chromium 源码
据Chromium官方文档来看,是需要至少100G的空闲磁盘,为此,我查看电脑里的几个盘,最终还是选择了C盘,清理了很大一部分空间出来,也就是你现在看到的下图这般。

新建一个名为chromium的文件夹,名字你可以随意起,这个倒无所谓的!

chromium 官方文档是通过fetch chromium来下载代码,但是这种下载是chromium最新代码,还包括历史log,虽然可以带上--no-history参数,它终究还是拉取最新代码。
在当前文件夹内,空白地方鼠标右键,再弹出的选项列表里,选择Git Bash here,再弹出的对话框中输入以下命令。
- 第一种方案:
git clone --depth 100 -b 103.0.5060.68 https://chromium.googlesource.com/chromium/src.git src
直接从chromium 官网拉取源码,下载的速度取决于你的网络。
- 第二种方案(我采取这种方案,为的是节省
网络流量):
git clone --depth 100 -b 103.0.5060.68 https://gitee.com/mirrors/chromium.git src
# 还原git仓库地址
cd src
git remote set-url origin https://chromium.googlesource.com/chromium/src.git
cd ..
参数说明:
--depth 100意思是拉取深度为100,这将会拉取一些log,因为编译脚本会基于仓库的log反查版本发布时间。如果这个值太小,可能会查不到,因而报错。所以,建议设为100或更大些。或者,直接去掉这个参数,但这样将拉取全部的log,特别慢。-b 103.0.5060.68指定拉取的tag版本。
不管你采取了那种方案,在git或cmd总是要设置好网络,至于怎么设置网络,可以查看秋码记录,这里将不再赘述,毕竟后面同步第三方依赖,是必须要用到网络的!
若你的电脑安装过了git工具,可以在Git Bash,输入上述任何一种方案。

假使你电脑没安装过git,那么直接在cmd中,输入上述任何一种方案。

生成 .gclient 文件
其实,这一步骤在Chromium文档里是没有的,之所以需要手动来生成.gclient这个文件,那是由于我们在拉取chromium代码时,是指定了版本号,拉取时不会自动生成这个文件。
而Chromium文档上使用fetch chromium命令来拉取代码后,会在当前文件夹自动生成一个src文件夹和.gclient文件,虽然可以加上--no-history参数来排除历史记录,但它拉取的总是最新的chromium代码,或许不支持你当前的系统,故而我选择了一个特定版本。
gclient config --unmanaged https://chromium.googlesource.com/chromium/src.git
执行完上述命令后,在于src文件夹同级下,自动生成了一个.gclient文件。


同步第三方依赖
若你的网络还算可以的话,按照chromium 文档的拉取方案,且拉取过程中没有中断过,是不需要这一步的。
而你若采取的跟我一样的方案,那么这一步骤是必不可少的,这也就是我为什么说,你最终还是要设置好网络原因所在了。
gclient sync
执行指令后,要下载几个 G 的依赖包,比较慢,窗口也会输出 Still working on的提示,防止假死被误关:

这当中可能需要耗费几个小时,它的快慢取决于你的网速快慢。
当然咯,gclient sync过程中出现了很多error和failed,我将另外撰写一篇关于在windows下编译chromium出现的问题汇总,这里将不再叙述。
你把error或failed给解决了,依旧在cmd执行gclent sync命令继续下去。
gclient sync执行期间,你可以出门去逛逛商场、爬爬山、或去电影院看场电影。
等你回来是,看到跟下图一样的话,那么说明gclient sync命令执行成功了。

编译调试版浏览器
首先cd src目录进行编译。
cd src
# 生成方案
gn gen out\Default
# 编译
autoninja -C out\Default chrome

指令 gn gen out\Default 生成的方案默认是编译为调试版的浏览器。
编译过程很久,根据机器性能决定,持续几个小时是正常的。如果意外中断,可再次执行 autoninja -C out\Default chrome 继续编译。

编译是成功了,可是无法打开它,或许是我电脑系统的问题,然而我转念一想,不对啊!我电脑都能正常运行chrome 109,不至于无法打开chromium 103版本吧!还是接着编译正式版。


2024-09-22 15:26:43 +0800 +0800