在 Windows8.1 下编译 Chromium (103.0.5060.68 之三)

本文已首发于: 秋码记录

说在前面的话

或许你在看到文章标题中的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,再弹出的对话框中输入以下命令。

  • 第一种方案:
bash 复制代码
git clone --depth 100 -b 103.0.5060.68 https://chromium.googlesource.com/chromium/src.git src

直接从chromium 官网拉取源码,下载的速度取决于你的网络

  • 第二种方案(我采取这种方案,为的是节省网络流量):
bash 复制代码
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 版本。

不管你采取了那种方案,在gitcmd总是要设置好网络,至于怎么设置网络,可以查看秋码记录,这里将不再赘述,毕竟后面同步第三方依赖,是必须要用到网络的!

若你的电脑安装过了git工具,可以在Git Bash,输入上述任何一种方案。

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

生成 .gclient 文件

其实,这一步骤在Chromium文档里是没有的,之所以需要手动来生成.gclient这个文件,那是由于我们在拉取chromium代码时,是指定了版本号,拉取时不会自动生成这个文件。

Chromium文档上使用fetch chromium命令来拉取代码后,会在当前文件夹自动生成一个src文件夹和.gclient文件,虽然可以加上--no-history参数来排除历史记录,但它拉取的总是最新的chromium代码,或许不支持你当前的系统,故而我选择了一个特定版本。

bash 复制代码
gclient config --unmanaged https://chromium.googlesource.com/chromium/src.git

执行完上述命令后,在于src文件夹同级下,自动生成了一个.gclient文件。

同步第三方依赖

若你的网络还算可以的话,按照chromium 文档的拉取方案,且拉取过程中没有中断过,是不需要这一步的。

而你若采取的跟我一样的方案,那么这一步骤是必不可少的,这也就是我为什么说,你最终还是要设置好网络原因所在了。

bash 复制代码
gclient sync

执行指令后,要下载几个 G 的依赖包,比较慢,窗口也会输出 Still working on的提示,防止假死被误关:

这当中可能需要耗费几个小时,它的快慢取决于你的网速快慢。

当然咯,gclient sync过程中出现了很多errorfailed,我将另外撰写一篇关于在windows下编译chromium出现的问题汇总,这里将不再叙述。

你把errorfailed给解决了,依旧在cmd执行gclent sync命令继续下去。

gclient sync执行期间,你可以出门去逛逛商场、爬爬山、或去电影院看场电影。

等你回来是,看到跟下图一样的话,那么说明gclient sync命令执行成功了。

阅读全文请到 秋码记录你我杂志刊

相关推荐
一丝晨光1 个月前
Chrome和Chromium的区别?浏览器引擎都用的哪些?浏览器引擎的作用?
前端·c++·chrome·webkit·chromium·blink·trident
亿牛云爬虫专家3 个月前
利用Puppeteer-Har记录与分析网页抓取中的性能数据
chrome·node.js·浏览器·爬虫代理·puppeteer·chromium·代理ip
守城小轩6 个月前
Chromium 开发指南2024 Mac篇-编译前的准备工作(一)
chrome·chrome devtools·chromium
守城小轩6 个月前
Chromium 调试指南2024 Mac篇 - 调试 Chromium(三)
chrome·chrome devtools·chromium
守城小轩6 个月前
Chromium 开发指南2024 Mac篇-Xcode安装(二)
chrome·chrome devtools·chromium
守城小轩6 个月前
Chromium 调试指南2024 Mac篇 - 准备工作 (一)
chrome·chrome devtools·chromium
守城小轩6 个月前
Chromium 调试指南2024 Mac篇 - 常见问题及解决方法(四)
chrome·chrome devtools·chromium
DataPipe6 个月前
linux下chromium/chrome中文字体粗体渲染问题
linux·chrome·浏览器·字体·chromium
守城小轩6 个月前
Chromium 开发指南2024 Mac篇-开始编译Chromium(五)
chrome·chrome devtools·chromium