赞
踩
阅读建议:先简单过一下整个文章目录结构,大致了解一下各个步骤在干什么,然后在上手操作可能会事半功倍。也许你遇到的有些问题文章中已经提及到了,但是由于你没有往下看导致卡进度。
Chromium项目于2008年发布,作为Google Chrome浏览器的开源部分。Google的Chrome浏览器基于Chromium开发,但添加了Google品牌、自动更新、内置Flash播放器、PDF阅读器等一些闭源的功能和服务。
除了Chorm,近几年微软大火的Edge浏览器也是基于Chromium进行开发的。
Chromium开源项目有活跃的社区和丰富的学习资源,官方也有详细的开发者文档,涵盖了从环境设置到代码贡献的各个方面。
Chromium官方网站
学习chromium源码并不是很适合编程初学者,初学者应该从编程语言,数据结构,操作系统,网络等知识进行学习。
而chromium主要使用C++语言进行编写,所以,学习chromium需要对C++语言比较熟悉。
这篇文章主要介绍如何拉取chrmmium源码以及如何使用vs系列的编译器进行编译。当然你也可以参照官方文档进行拉取源码以编译。
注意:官方建议环境
如果自己的电脑配置不满足需求,就没必要继续向下进行了。
一般公司或者学校都使用Git
维护代码,而chromium使用Google自己开发的Depot Tools
管理代码仓库工具来维护chromium
项目。在整个学习chromium的过程会看到很多东西都是Google自己开发的,并没有使用现有的。比如chromium的UI界面,由于Goolgle看不惯window提供的UI界面,于是自己开发了Views框架做为chormium的ui组件。
depot_tools
是个工具包(depot是仓库的意思),里面包含gclient
、gcl
、gn
和ninja
等工具,这些根据都是使用python写的。其主要的功能是对git的增强,让代码管理和编译更加简单,如果熟悉Git的话就很容易上手了。不熟悉也没关系,就一些常用的命令,用的时间久了,自然就会了。
与Git
不同的是:Depot Tools
更专注于大型项目的管理,提供了一些额外的功能和工具来满足大型项目的开发需求;而 Git
则是一种通用的版本控制系统,可以用于管理各种规模的项目,提供了丰富的版本控制和分支管理功能。
所以在拉取源码之前需要先下载Depot Tools
下载Depot Tools。https://storage.googleapis.com/chrome-infra/depot_tools.zip
将其解压到指定的文件夹下(不要有中文路径)。
比如我解压在本地E盘下dev文件夹
注意:解压的时候,请务必使用“全部解压缩”选项或是其他的第三方软件解压缩。,千万不要双击打开复制文件,到文件加中,会丢失隐藏的.git 文件夹,导致工具无法更新
可以在你解压的文件夹中查看是否有.git
文件夹。如果没有,则说明你可能解压错了,也有可能是你没有显示隐藏文件。
按照下图打开隐藏文件即可。
下载完Depot Tools
后,顺便把环境变量配置好。按照下面的步骤即可
win+i
快捷键打开设置按win键,搜索Windows PowerShell
。打开即可。
(windows powershell也适用一些linux命令,比如ls,cd等等)
在打开的Windows PowerShell工具的窗体中输入glcient
。
注意:后续拉取源码等操作需要代理。
如果出现下面这种情况,则说明是代理的问题,关于代理自行解决。
如果报错,那么在安装Depot Tools时或者环境变量配置出错了,重新安装配置即可。
如果显示如下,恭喜您安装成功了,并且已经初始化升级成功。
在本地创建一个文件夹,用于存放Chromium的源代码。建议空闲空间在200G以上。
比如我这里在本地创建了一个chromium文件夹用来存放源码(忽略已存在的文件,新建的是一个空白什么都没有的文件夹)
在此处打开Windows PowerShell工具shitf+右键
选择在此处打开Powershell窗口即可。
在Windows PowerShell工具 使用 fetch chromium
命令拉取Chromium的源代码。
这里为了节约时间,我们添加 “–no-history”选项,不拉取历史记录,只拉取最新版Chromium
fetch --no-history chromium
如果出现下面这种情况,则说明你网络问题,没有设置代理,因为源码在国外,这个办法自己百度解决。(这个东西不敢教,多多包含…)一般设置为全局代理+TUN模式就可以了。如果你使用的是校园网,学校可能会拦截你,也是无法拉取的。
正常拉取源码如下图:
出现下面这种情况耐心等待即可。整个时长大概十分钟左右。
这是在向你的磁盘中写入数据, 打开你的存放chromium的文件夹,就可以看到在有新的文件夹被写入。
写入完成后就开始下载源码了。
整个源码大概40Gb左右,拉取时间非常长,耐心等待即可。
如果中途断掉了,不用删除全部文件重新拉取,使用gclient sync
命令继续拉取即可。(gclient sync 是用于同步 Chromium 源代码的命令)
如果使用gclient sync
进行同步时,出现错误,也是由于网络原因造成的,将你的windows PwoerShell
设置代理即可。(我这里使用的使用clash for window,端口号使用的是默认的7890,你的端口号取决于你使用的代理。)
设置代理命令如下:
$env:HTTP_PROXY="http://127.0.0.1:7890"
$env:HTTPS_PROXY="http://127.0.0.1:7890"
设置完代理后,就可以正常的同步进行下载了
编译项目使用官方推荐的vs2022即可,关于vs2022的安装,参考本人另一篇博客:
vs2022安装
安装完成后,也需要设置Visual Studio 2022 的安装路径的环境变量。
在系统环境变量中直接新建环境变量vs2022_install
。变量值设置为vs2022的安装路径即可。
除了设置vs2022的安装环境变量,还需要设置DEPOT_TOOLS_WIN_TOOLCHAIN
环境变量。
因为我们需要使用本地算力编译Chromium,所以需要添加 DEPOT_TOOLS_WIN_TOOLCHAIN 环境变量,并将其设置为 0。这告诉 depot_tools 使用本地安装的 Visual Studio 版本(默认情况下,depot_tools 将尝试使用 google 内部版本)
一样的,添加系统环境变量,变量名为:DEPOT_TOOLS_WIN_TOOLCHAIN
,值为0即可。
Windows SDK - Windows app development | Microsoft Developer
因为在编译chrom时需要 10.0.22621.2428版本的Windows 11 SDK ,上面连接就是下载地址。
进入后点击下面下载即可。这里建议使用.ios镜像,直接在线下载完安装就行了。
下载完成后,安装即可
一路next即可,在安装组件的时候,选择Debugging Tools for Windows组件。
安装完成后,设置环境变量WINDOWSSDKDIR
,值为安装Windows SDK 的安装路径。
在Depot Tools
工具包中提供了一个gn
构建文件的工具。它的全称是 “Generate Ninja”,gn
工具的主要作用是将配置文件转化为 Ninja 构建系统可以使用的文件,从而管理项目的编译和链接。
通过gn
工具,可以生成vs的工程文件。
按照一下步骤进行生成工程文件。
gn args --ide=vs --filters=//chrome --no-deps .\out\vs_dev
参数说明:
gn
:调用 GN 工具。GN 是 “Generate Ninja” 的缩写,它用于生成构建文件(如 Ninja 构建系统的文件)。args
:GN 的一个子命令,用于生成或更新 args.gn
文件中的构建参数。--ide=vs
:指定生成适用于 Visual Studio 的项目文件。这个参数告诉 GN 生成 .sln 和 .vcxproj 文件,以便在 Visual Studio 中打开和编辑。filters=//chrome
:指定只生成 //chrome
目录下的项目文件。这个过滤器确保只有与 //chrome
模块相关的文件会被包括在生成的项目中。--no-deps
:指示 GN 不包括 //chrome
模块的依赖项。通常,模块可能依赖于其他许多库和组件,这个选项确保这些依赖项不会被包含,从而减少生成的项目文件数量。解释:
--filters=//chrome --no-deps
选项只生成chrome相关的模块。is_debug = true
和 is_component_build = true
。$env:WINDOWSSDKDIR = "D:\Windows Kits\10"
替换为你的windows sdk安装路径。5.使用vs2022 编译chromium项目
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。