1.准备工作部分操作必须外网,请自备代理电脑配置建议32G内存(至少8G,当然越多越好)硬盘空间,很多网上的教程都是100G,如果只是编译一个版本的确实够了,如果多个版本需要多预备硬盘空间,格式为NTFS,建议固态硬盘,机械会降低编译速度系统Windows10及以上2.确定编译的版本
Chromium每天提交的Commit很多,没有经过完全的测试,可能在编译之后产生BUG,对于我这种编外人员不适合使用最新的源码来进行编译,也不建议读者使用不稳定的代码进行编译(当然喜欢尝鲜的什么版本都行)。
获取稳定版本的版本有两种方式
方式一: 安装Chrome浏览器,在关于页面找到版本号
方式二: 在对应的发布版本,我使用的是107.0.5304.122
3.构建说明
在确定好自己要编译的版本后,需要找相对应的版本编译说明,用浏览器打开,在左侧的Tags中找到需要编译的版本:
进入对应的Tag后在底部找到README.md的说明,在官方说明中不建议直接git clone仓库,而是根据链接的指引来获取源码。基本上不是跨越太多的版本编译说明基本是一样的,除了对Windows SDK和Visual Studio有要求。
进入指引页面后选择Windows选项进入编译说明的页面,官方有对系统要求、Visual Studio以及Windows SDK都有详细说明
我的配置:
CPU: AMD 3700x
内存: 32G
硬盘: 1T m.2
操作系统: Windows Server 2022(只要Windows 10以上就行)
4.安装Visual Studio与SDK
根据编译说明,需要安装VS 2017 (版本>=15.7.2) 或VS 2019(版本>=16.0.0),VS下载地址:
安装编译所必须的组件,勾选左侧中的C++的桌面开发和右侧的C++ATL生成工具,另外还需要安装版本为10.0.20348.0的Windows SDK,可在单个组件中选择安装,或者单独安装,单独安装文件下载地址:
安装完成Windows SDK后还需安装SDK调试工具,安装方法:控制面板 →程序 → 程序和功能 → 选择“Windows Software Development Kit”→更改→“Change”→勾选“Debugging Tools For Windows”→Change
在安装完成组件和SDK后就开始配置系统环境变量:
1. 添加系统变量 vs2019_install 变量值:为vs安装的具体目录,例如我的是:C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise
2. 添加Windows SDK环境变量,变量名:WINDOWSSDKDIR 值为Windows 10 SDK的安装目录,我的是:C:\Program Files (x86)\Windows Kits\10
5.安装depot_tools
下载地址: ,解压到你能找到的文件夹中(不要使用资源管理器中的拖放或复制粘贴提取,不然可能.git目录不能正常复制出来,使用正常的压缩包工具之间解压到指定目录即可),解压完成后,需要将depot_tools目录添加到PATH环境变量中,因为depot_tools内置了git和python,所以需要将depot_tools放到最前面
还需要再添加一个环境变量 DEPOT_TOOLS_WIN_TOOLCHAIN哪个浏览器可以看源码,其值为 0,作用是让 depot_tools 使用本地安装的 Visual Studio 版本(默认情况下,depot_tools 将尝试使用 google 内部版本):
接下来初始化depot_tools,使用管理员权限运行CMD并设置代理,如果使用了软件设置系统全局代理的可以不用操作这一步
set http_proxy=127.0.0.1:7890
set https_proxy=127.0.0.1:7890
执行gclient初始化
没有配置过git的需要配置一下,命令行执行以下命令即可:
git config --global user.name "My Name"
git config --global user.email "my-name@chromium.org"
git config --global core.autocrlf false
git config --global core.filemode false
git config --global branch.autosetuprebase always
6.获取chromium代码
有两种方式可以获取源码,在拉取源码之前,先建一个目录用来存放源码
第一种,从官方拉取,这种方式需要全程代理
git clone -b 107.0.5304.122 https://chromium.googlesource.com/chromium/src.git src
第二种,通过国内的gitee拉取,拉取源码时不需要代理
git clone -b 107.0.5304.122 https://gitee.com/mirrors/chromium.git src
# 还原git仓库地址
cd src
git remote set-url origin https://chromium.googlesource.com/chromium/src.git
不想拉取全部log的可以增加--depth参数(建议值100,太小可能会报错)
因为使用的是自定义拉取的方式,所以还需要利用命令在src同级目录生成.gclient文件,然后同步所有的第三方依赖哪个浏览器可以看源码,同步过程中一般中断的情况都是因为网络原因,可以重新使用gclient sync 继续同步
//通过命令行在src同级目录下生成.gclient文件
gclient config --unmanaged https://chromium.googlesource.com/chromium/src.git
//同步第三方依赖,这里建议开启系统全局代理 ,防止下载失败,根据网络和代理的情况,可能
//需要几小时,中途失败可,继续重复执行下面的命令,直到成功
gclient sync
执行完毕如下图:
7.编译浏览器
1.默认方案编译
运行命令行,进入已经拉取并同步了源码的 src 目录 ,运行一下命令
//默认生成方案
gn gen out\Default
//等待生成方案结束后运行编译默认方案
autoninja -C out\Default chrome
2.带参数方案编译
//执行以下命令会弹出记事本文件,可以配置编译参数
gn args out\Release
//编译默认模块
autoninja -C out\Release chrome
//编译安装版的安装程序包
autoninja -C out\Release mini_installer
参数说明:
编译时间可能几小时(该吃饭的吃饭,该睡觉的睡觉),这是根据自身机器性能决定,我的机子配置偏差编译差不多花了两小时左右,如果编译过程中突然中断了可以继续执行编译命令继续编译
编译结果
版权声明
本文仅代表作者观点。
本文系作者授权发表,未经许可,不得转载。
发表评论