说在前面的话
或许你在看到文章标题中的windows8.1
,难免会让你望而却步
。
谁说不是呢!毕竟按chromium官方文档
要求,win8.1
是达不到编译 chromium
高版本的要求的。
但不管怎么样,我的win8.1
电脑最终还是编译出了chromium
,足以说明win8.1
系统编译chromium
是可行的。
虽然在编译
期间,占有了电脑大量使用时间,好在我都是在白天出门前,电脑开着让它静静
地build
。
让我庆幸的是,在那漫长的编译过程
中,竟没有因error
huofailed
而中断,就连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
,输入上述任何一种方案。
![image-20240917124924443]((https://qiucodeimg.oss-rg-china-mainland.aliyuncs.com/golang-test/image-20240917124924443.png)
假使你电脑没安装过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
版本吧!还是接着编译正式版
。