您当前的位置:首页 > 计算机 > 编程开发 > 编译原理

chromium源码的下载与编译

时间:04-16来源:作者:点击数:

这篇文章主要记录在chromium源码下载以及编译过程中遇到的问题。一直都对chromium的源码感兴趣,在没有封闭外网之前,下载了一个版本,很老了,重新进行更新又不得行,再加上公司的产品线路需要了解chromium的相关知识,又加上疫情封控在家,就又升起了下载并编译chromium源码的想法(其实在这些年的过程中都尝试过下载,但由于各种原因(外网经常被封等)没有下载成功)。

刚开始,一直按照官网上的介绍文档(https://chromium.googlesource.com/chromium/src/+/main/docs/windows_build_instructions.md)来进行代码的迁移,但始终在迁移代码时,会遇到git外网下载中断的问题,又要重新开始,很麻烦。后面经过查询资料,现在的chromium源码迁移到git上面了,而国内的电信网络访问git时没有问题的,因此萌生了一种替代的想法,在经过下载测试的过程中,竟然能行,因此记录一下成功的下载(大概经历了6-7天才搞完)。

一、chromium概况

Chromium是一款来自 “The Chromium Project” 的开源图形网络浏览器,基于Blink渲染引擎。它也是商业软件 Google Chrome 浏览器得以组成的基础。目前Chromium分为4个版本(详见https://www.chromium.org/getting-involved/dev-channel/):

  • stable release版本:稳定版本的通道,2-3周更新一个小版本,每6周更新一个大版本。
  • development release版本:相对稳定的版本,新功能和新特性都有。
  • canary版本:是最前沿的实验版本,每日发布。注意:它没有经过充分测试,可能有某些奇怪的bug。
  • beta版本:测试版本。

二、获取Chromium源代码

首先是根据可官方文档中的说明,在下载Chromium源代码之前,需要能够访问chromium的官网(即FQ),然后就是系统需要满足一定的要求,我这里使用的是Windows系统,就按照Windows的要求来做,另外我使用的WireGard工具来访问google。

1、安装depot_tools

depot_tools是Google官方提供的一个用来checkout、compile、run和submit的工具集,它主要用于管理与 Chromium 源代码存储库和 Chromium 开发过程中需要安装的编译工具。它可以更好的帮助我们学习和调试Chromium代码。有关它的详细介绍详见:https://www.chromium.org/developers/how-tos/depottools/#introduction

windows环境下,有两种方式可以下载该工具:

1、在浏览器中输入https://storage.googleapis.com/chrome-infra/depot_tools.zip,即可下载depot_tools工具;

2、使用git命令将该工具迁移到指定的目录,使用的命令行如下:

` git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git`

下载完成后,则将depot_tools的路径设置到系统环境变量中,我的设置路径如下图所示:

image.png

设置完环境变量后,按照同样的方式要设置DEPOT_TOOLS_WIN_TOOLCHAIN的环境变量并设置为0.这个环境变量是告诉depot_tools是使用本地安装的Visual Studio。要不然depot_tools会使用一个google-internal版本。环境变量如下图所示:

image.png

然后还要根据电脑上安装Visual Studio版本来设置一个环境变量,来告诉depot_tools使用的是哪一个版本。由于我电脑上安装的是VS2022,因此我的环境变量如下图所示:

image.png

环境变量配置完成后,则打开命令提示符,输入gclient命令,用于安装处理代码所需的所有Windows的工具,包括msysgit和python。

然后新建一个chromium目录,并在命令提示行工具中导向这个目录。

2、获取源代码

注意,这里就不用按照官方文档的命令fetch chromium去下载源代码了(就算是FQ,国内也很难下载下来),这里我使用的是git命令去git服务器去下载代码(这一部分可以不用FQ,国内也能下载,且速度不差),命令如下:

git clone "https://github.com/chromium/chromium.git"`

等待上面的命令执行完成(根据网速来,我这里大概1-2小时下载完毕),并下载完成后,会产生一个chromium的目录,该目录上包含了chromium的源代码。然后将该目录的名字修改成src,就相当于源码下载完成。但这个下载没有下载windows下的各种依赖、三方库等的源码,因此,在该目录,运行下面的命令(z该命令需要FQ):gclient sync --jobs 16,来下载对应的依赖库。这里下载失败了,就始终去运行这个命令,然后就会下载成功。下载成功后,我的目录结构如下图所示:

image.png

3、构建代码

Chromium使用Ninja作为其主要的构建工具,以及一个名为GN的工具来生成文件。

如果不需要产生sln文件,就使用如下的命令来产生对应的编译文件:

gn gen out/Default/X64

然后使用以下的命令来产生对应的chromium的运行程序:

autoninja -C out\Default chrome

因为我要产生sln文件并进行代码调试,我使用以下的命令来产生sln文件(备注:这里的终端建议使用管理员身份运行)。产生后的文件夹列表如下图所示:

gn gen --ide=vs out/Default/X64
image.png

产生文件夹成功后,会有10902个项目,编译起来也是个大麻烦。我一开始编译(我的电脑16G内存,被占的满满的)并编译了8-9小时,建议晚上编译,白天会工作不了。我的电脑用vs2022打开整个项目,如下图所示:

image.png

无论上面两种哪一种进行编译,然后进行exe运行,运行结果如下图所示:

image.png

参考资料

1、https://chromium.googlesource.com/chromium/src/+/main/docs/windows_build_instructions.md

2、https://www.chromium.org/getting-involved/dev-channel/

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门