从零开始编译 Chromium 确实是一项挑战,但流程是清晰和成熟的。整个过程主要分为准备环境、获取代码、配置构建、开始编译四大步。请根据你的操作系统,遵循以下对应的指南。
📝 通用准备
在开始之前,请确保你的机器满足以下最低要求,这将直接影响编译的成败和时长:
- 操作系统: 64位 Windows 10/11 或 64位 Linux (推荐 Ubuntu 22.04+) 。
- 内存: 至少 8GB,强烈建议 16GB 或更多 。
- 硬盘: 至少 100GB 可用空间,且必须是 NTFS (Windows) 格式,强烈推荐使用固态硬盘 (SSD) 。
- 网络: 稳定且通畅的网络连接(可能需要代理访问 Google 源码仓库)。
🪟 方案一:Windows 环境编译指南
步骤 1: 安装必要工具
- 安装 Visual Studio 2022
- 下载并安装 Visual Studio 2022 (Community版即可)。必须安装 “使用 C++ 的桌面开发” 工作负载,以及 “C++ ATL for v143 build tools” 和 “C++ MFC for v143 build tools” 两个可选组件 。
- 安装 Windows 11 SDK
- 在Visual Studio安装器中,确保选中了最新的 Windows 11 SDK (例如 10.0.22621.0 或更高版本)。同时需要安装其 “调试工具” (Debugging Tools) 。
- 配置环境变量
- 新建一个系统/用户环境变量,名称为
DEPOT_TOOLS_WIN_TOOLCHAIN,值为0。这告诉编译系统使用你本地的VS,而不是去下载Google内部的工具链 。 - (可选)如果系统没有自动找到VS路径,可以再新建一个变量,名称为
vs2022_install,值为你的VS安装路径(例如C:\Program Files\Microsoft Visual Studio\2022\Community)。
- 新建一个系统/用户环境变量,名称为
步骤 2: 获取 depot_tools 和源码
- 下载 depot_tools
- 在
C:\src目录下打开命令提示符 (cmd),运行:bash git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git - 将
C:\src\depot_tools添加到系统的 PATH 环境变量的最前面(确保它在任何Python或Git路径之前)。 - 重启命令提示符,运行
gclient命令完成工具集的初始化 。
- 在
- 下载 Chromium 源码
- 创建一个存放代码的目录(路径不要有空格),例如
C:\src\chromium,并进入该目录:bash mkdir C:\src\chromium cd C:\src\chromium - 执行
fetch命令下载代码(--no-history可选,用于跳过Git历史记录以节省时间和空间):bash fetch --nohooks --no-history chromium - 这个过程可能耗时1-2小时或更长,取决于网络。完成后,目录下会生成一个
src文件夹 。
- 创建一个存放代码的目录(路径不要有空格),例如
步骤 3: 配置与编译
- 进入源码目录并运行钩子
bash cd src gclient runhooks - 生成构建文件 (GN)
- 使用
gn工具生成Ninja构建文件。这里我们创建一个用于调试的构建目录out/Default:bash gn gen out/Default - (可选)如果你想要更快的构建速度(例如发布版本),可以使用
gn args out/Release来编辑构建参数,例如添加is_debug=false is_official_build=true。
- 使用
- 开始编译
- 使用
autoninja命令(Ninja的包装器,能自动优化参数)开始编译 Chromium 主程序:bash autoninja -C out/Default chrome - 编译过程极其漫长,在性能较好的机器上也可能需要2-5小时。请耐心等待,期间可以喝杯咖啡休息一下 。
- 使用
步骤 4: 运行你的 Chromium
- 编译成功后,在
out/Default文件夹中找到chrome.exe,双击运行,或者通过命令行启动:bash out\Default\chrome.exe
🐧 方案二:Linux 环境编译指南 (以Ubuntu为例)
步骤 1: 安装基础依赖
打开终端,更新包管理器并安装基础工具 git 和 python3:
sudo apt update
sudo apt install git python3
步骤 2: 获取 depot_tools 和源码
- 下载 depot_tools
- 在你的 home 目录下克隆 depot_tools 仓库:
bash git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git - 将 depot_tools 添加到
PATH环境变量中。编辑~/.bashrc文件,在末尾添加以下内容:bash export PATH="$HOME/depot_tools:$PATH" - 使配置生效:
source ~/.bashrc。
- 在你的 home 目录下克隆 depot_tools 仓库:
- 下载 Chromium 源码
- 创建一个工作目录并进入:
bash mkdir ~/chromium && cd ~/chromium - 使用
fetch工具下载代码(同样建议加上--no-history加快速度):bash fetch --nohooks --no-history chromium - 等待下载完成,进入
src目录:bash cd src
- 创建一个工作目录并进入:
步骤 3: 安装构建依赖并配置
- 安装构建依赖
- Chromium 源码中提供了一个脚本,可以自动安装所有必需的开发库和工具:
bash ./build/install-build-deps.sh - 根据提示输入密码,脚本将安装大量依赖包 。
- Chromium 源码中提供了一个脚本,可以自动安装所有必需的开发库和工具:
- 运行钩子
- 再次运行钩子以下载额外的二进制文件:
bash gclient runhooks
- 再次运行钩子以下载额外的二进制文件:
- 生成构建文件
- 创建构建目录并生成配置:
bash gn gen out/Default
- 创建构建目录并生成配置:
步骤 4: 编译与运行
- 开始编译
- 使用
autoninja编译chrome目标:bash autoninja -C out/Default chrome
- 使用
- 运行 Chromium
- 编译完成后,直接在终端中启动它:
bash out/Default/chrome
- 编译完成后,直接在终端中启动它:
💡 重要提示与常见问题
- 网络问题:由于众所周知的原因,访问
chromium.googlesource.com可能不稳定。如果遇到连接问题,你可能需要为git和命令行配置临时代理 。bash # 设置 HTTP/HTTPS 代理 (以本地 7890 端口为例) set http_proxy=http://127.0.0.1:7890 set https_proxy=http://127.0.0.1:7890 git config --global http.proxy http://127.0.0.1:7890 git config --global https.proxy http://127.0.0.1:7890 - 编译中断:编译过程非常耗时,如果因为意外中断(如电脑关机、网络断开),不用担心。只需重新执行
autoninja -C out/Default chrome命令,它会从断点处继续 。 - 指定版本:如果你想编译某个特定版本(如
103.0.5060.66),可以在gclient sync时指定 。 - 磁盘空间:务必确保你的系统盘(或代码存放盘)有超过 100GB 的空闲空间。编译过程会产生大量中间文件。
git checkout -b v126-6478-271
cd D:chromium && gclient sync –with_branch_heads –with_tags -D –force
cd src && mkdir outv126_build
编辑 outv126_buildargs.gn
gn gen outv126_build
autoninja -C outv126_build chrome