自行构建 chromium 教程,还是自己编译的浏览器好

看了官方文档,一路走来不得不说坑很多。以下所有命令均在 cmd 命令提示符下运行。

首先做好准备工作:
1,新版 chromium 需要 Visual Studio 2022 勾选如下(划红线的必选):


2,准备好大约 200G 的空间用于存放源码和编译。电脑内存最好 32G 起步。


3,安装配置 git 工具。
git config –global user.name “My Name” #设置你的名字
git config –global user.email “[email protected]” #设置你的邮箱
git config –global core.autocrlf false
git config –global core.filemode false
git config –global branch.autosetuprebase always
git config –global core.longpaths true # 解除 Windows 限制,配置 git 以允许长路径支持


4,下载 depot_tools 。解压到一个目录,比如 d:\depot_tools。并配置系统环境 PATH。
Windows 打开命令提示符 cmd ,输入 control sysdm.cpl,在 PATH 系统变量中添加 d:\depot_tools 这个目录,如果你的不一样,请自行改变。
Linux 直接 export PATH=”$PATH:/path/to/depot_tools”。这个临时变量,重启需要再次添加。也可以 git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git 拉取源码。

5,更新 depot_tools。
gclient sync

6,创建源码目录,在转到新创建的目录。
mkdir chromium && cd chromium

6,下载 chromium 源码。如果没有科学上网的可能下载不了。我这里给个百度网盘吧!
fetch chromium 或者 fetch chromium –no-history (这个可以节省时间)这个是拉取最新分支。如果要要旧版请参照这个 git clone –depth 100 -b 103.0.5060.66 https://chromium.googlesource.com/chromium/src.git src
如果不小心断掉了链接,可以用 gclient sync 来继续下载。

7,构建编译文件,设置编译参数。
Windows
cd src && gn gen out\Default (测试版)
gn args out\Release (正式版)需要输入编译参数如下
target_os=”win”
target_cpu=”x64″
is_component_build=false
is_debug=false
is_official_build=true


Android
gn gen –args=’target_os=”android” target_cpu=”arm64″ out/Default


如果需要构建调试版本添加改变以下参数

is_debug = true
is_component_build = true
symbol_level = 2

8, 构建可执行文件。

autoninja -C out\Default chrome (测试版)
out\Release chrome (正式版)

一些错误解决方案,如下:

A,No downloadable toolchain found. In order to use your locally installed version of Visual Studio to build Chrome please set DEPOT_TOOLS_WIN_TOOLCHAIN=0.

这个错误是环境变量的错误,也就是没找工具。我这里是这么解决的:
1,将 d:\depot_tools 这个环境变量放置在最前头。添加系统环境变量 DEPOT_TOOLS_WIN_TOOLCHAIN=0 。
2,卸载本身安装 Python,然后再执行 gclient sync (设置环境变量后,请重新打开命令提示符)。此时它会重新构建工具链。

B,构建速度慢

1,关闭 Windows Defender。12 13 14代intel看下大小核心调度。
2,设置 set NINJA_SUMMARIZE_BUILD = 1 && autoninja -C out\Default base,让其显示构建过程。或者执行 python depot_tools\post_build_ninja_summary.py -C out\Default
3,更多详细,参见原文

C,UnicodeDecodeError: ‘gbk’ codec can’t decode byte 0x92 in position 125: illegal multibyte sequence 出现这个编码错误不用管,也可以编译成功的。源码某些用的是 Python2,所以会有这个错误。要修正你需要找到源文件,但是跳出这个错误并没有带出源文件。

D,如果遇到 git 源码不一致问题。
gclient sync -D –force –reset
使用上述命令强行覆盖