Chromium 编译与搭建教程 (Ubuntu 22.04)

本教程基于 Google 官方文档及实战经验总结,旨在帮助开发者在 Linux 环境下顺利搭建 Chromium 编译环境并完成编译。

一、 前言

  • 本教程基于 Google 官方文档及实战经验总结,旨在帮助开发者在 Linux 环境下顺利搭建 Chromium 编译环境并完成编译。

二、 安装 depot_tools

depot_tools 是 Google 用于管理 Chromium 源码仓库的工具包,包含 gclientfetchgn 等核心工具。

  1. 克隆仓库

    1
    git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
  2. 配置环境变量: 将 depot_tools 路径添加到 PATH

    1
    2
    3
    4
    5
    6
    # 临时生效(仅限当前终端)
    export PATH="$PATH:${HOME}/depot_tools"

    # 永久生效:修改 ~/.bashrc
    echo 'export PATH="$PATH:${HOME}/depot_tools"' >> ~/.bashrc
    source ~/.bashrc

三、 获取 Chromium 源码

  1. 创建工作目录

    1
    mkdir ~/chromium && cd ~/chromium
  2. 拉取代码

    • 全量同步(含历史记录,约 30GB+)

      1
      fetch --nohooks chromium
    • 快速同步(仅当前版本,体积较小)

      1
      fetch --nohooks --no-history chromium
  3. 进入源码目录

    1
    cd src

四、 安装依赖与初始化

  1. 安装系统级依赖脚本

    1
    sudo ./build/install-build-deps.sh

    注:若提示 Chrome OS 字体安装失败,可添加参数跳过: sudo ./build/install-build-deps.sh --no-chromeos-fonts

  2. 执行钩子脚本(gclient runhooks): 该步骤会下载特定平台的二进制工具(如编译器、构建工具等)。

    1
    gclient runhooks
    • 代理提示:若报错提示 gsutil 不识别代理,可在当前目录下创建 .boto 文件并配置:

      TOML
      1
      2
      3
      [Boto]
      proxy = 127.0.0.1
      proxy_port = 8118

      然后执行 export NO_AUTH_BOTO_CONFIG=/path/to/.boto


五、 编译配置

  1. 生成构建目录: 使用 GN 创建一个名为 out/Default 的构建设置。

    1
    gn gen out/Default

    提示:如果需要自定义编译参数(如 Debug/Release),可以使用 gn args out/Default 进入编辑模式。


六、 开始编译

  1. 执行构建命令: 使用 autoninja 自动调用 Ninja 进行并行编译。

    1
    autoninja -C out/Default chrome
    • 耗时:根据机器配置,通常需要 3 小时到 6 小时不等。
    • 注意:如果进程被 Killed,通常是因为内存不足。可以尝试再次运行该命令(支持断点续传),或者减少并发数。

七、 运行 Chromium

编译完成后,可执行程序位于 out/Default 目录下:

1
./out/Default/chrome