从零开始:在 Windows 环境下拉取并编译 Chrome 源码全纪录

编译 Chromium(Chrome 浏览器)源码是一个复杂但非常有趣的过程。你可以从头开始构建自己的浏览器,并对其进行定制,调试或优化。下面是 Windows 平台下,如何获取 Chromium 的源码并进行编译构建的详细步骤。


一、系统要求

在开始之前,确保你的计算机满足以下系统要求:

  • 操作系统:Windows 10 或更高版本。

  • 硬件要求

    • 至少 8GB 内存 ,推荐 16GB 或更多

    • 至少 100GB 可用硬盘空间(NTFS 格式,FAT32 格式不可用)。

    • 64 位处理器

  • 必需工具

    • Visual Studio 2022 (版本 >= 17.0.0)用于编译,并且需要安装 Desktop development with C++ 组件。

    • Windows 11 SDK(版本 10.0.26100.4654)及其调试工具。


二、设置 Visual Studio
  1. 安装 Visual Studio 2022

    • 下载并安装 Visual Studio 2022 ,确保选择了 Desktop development with C++ 组件和 MFC/ATL support

    • 你可以通过命令行安装 Visual Studio:

      $ PATH_TO_INSTALLER.EXE ^ --add Microsoft.VisualStudio.Workload.NativeDesktop ^ --add Microsoft.VisualStudio.Component.VC.ATLMFC ^ --includeRecommended

  2. Windows SDK 和调试工具

    • 安装 Windows 11 SDK,版本号为 10.0.26100.4654。

    • 如果使用 ARM64 进行编译,还需要手动安装调试工具。

  3. 安装调试工具

    • 如果 SDK 中没有包含调试工具,可以去 Control Panel > Programs and Features > Windows Software Development Kit 安装调试工具。

三、安装 Git 和 Depot Tools
  1. 安装 Git

  2. 更新 Git

    • 更新现有的 Git 安装,通过以下命令:

      git update-git-for-windows

  3. 命令行设置临时代理

    set http_proxy=http://10.16.13.18:8080

    set https_proxy=http://10.16.13.18:8080

    netsh winhttp set proxy 10.16.13.18:8080

    cpp 复制代码
    当前的 WinHTTP 代理服务器设置:
    
        代理服务器: 10.16.13.18:8080
    
        绕过列表 : (无)
  4. 安装 Depot Tools

    • depot_tools 是 Chromium 构建系统的核心工具。克隆 depot_tools 仓库到指定目录,例如:

      $ git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git C:\src\depot_tools

    可能的报错

    cpp 复制代码
    报错一
    
    git clone ssh://git@chromium.googlesource.com/chromium/tools/depot_tools.git
    Cloning into 'depot_tools'...
    ssh: connect to host chromium.googlesource.com port 22: Network is unreachable
    fatal: Could not read from remote repository.
    Please make sure you have the correct access rights
    and the repository exists.
    
    原因是 SSH 协议默认走 22 端口,而你现在在公司网络或通过 HTTP 代理访问,端口 22 被阻断。即使你设置了 http_proxy/https_proxy 和 WinHTTP 代理,SSH 不会走 HTTP 代理,所以无法连接。
    
    
    解决方法
    方案 1:用 HTTPS 克隆 depot_tools(推荐)
    git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
    - HTTPS 可以通过你已经设置的 HTTP 代理访问。
    - 如果公司网络限制了 HTTPS,需要确保代理能访问外网。
    
    方案 2:SSH + 代理(复杂,不建议)
    - 需要配置 ProxyCommand 或 corkscrew 让 SSH 走 HTTP 代理。
    - 在 Windows 下比较麻烦,一般只在必须用 SSH 权限操作私有仓库时用。
    
    
    
    报错二
    
    git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
    Cloning into 'depot_tools'...
    fatal: unable to access 'https://chromium.googlesource.com/chromium/tools/depot_tools.git/': schannel: next InitializeSecurityContext failed: Unknown error (0x80092013)
    
    报错2需要执行即可
    git config --global http.sslBackend "openssl"
    
    完成后配置环境变量
    D:\work\code\SE_AI_Chrome_143\depot_tools 加到path里面,重新启动cmd
    • 垃圾玩意删不掉
  5. 配置环境变量

    • depot_tools 添加到系统的 PATH 环境变量中(确保它在 Python 之前)重启cmd。

    • 在环境变量中添加:

      DEPOT_TOOLS_WIN_TOOLCHAIN=0

    • where gclient看下是不是第一个,下图就没问题

  6. 运行 gclient

    • 安装所有 Windows 特定的依赖:

      $ gclient


四、获取 Chromium 源码
  1. 配置 Git

    配置 Git 用户名和电子邮件:

    cpp 复制代码
    $ 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
  2. 创建 Chromium 目录并获取源码

    创建一个新的目录并切换到该目录:

    $ mkdir chromium && cd chromium

    使用 fetch 命令下载 Chromium 的代码及其依赖:

    $ fetch chromium

    如果你不需要完整的历史记录,可以加上 --no-history 参数来加速下载:

    $ fetch chromium --no-history

  3. 可能的报错

  4. 同步子仓库

    如果获取过程中出现错误,可以运行以下命令来同步所有子仓库:

    $ gclient sync


五、设置构建目录
  1. 生成构建文件

    使用 GN(Google's build system)来生成 Ninja 构建文件。首先,在 src 目录下创建构建目录:

    $ cd src $ gn gen out\Default

    这将生成用于构建 Chromium 的 out/Default 目录。

  2. 可能的问题

  3. 构建 Chromium

    使用 autoninja 来执行构建:

    $ autoninja -C out\Default chrome

    autoninjaninja 的一个包装工具,自动提供最优的参数设置。


六、加速构建
  1. 硬件优化

    • 将构建目录存放在 SSD 硬盘上,以提高读写速度。

    • 使用多核 CPU(20 核以上)和大量内存(64 GB 以上)可以显著提高构建速度。

  2. 配置 gn 参数以优化构建时间

    gn args out\Default --args="is_component_build=true is_debug=true"

  3. 禁用防病毒软件和文件系统索引

    • 确保防病毒软件不会扫描构建目录,尤其是在使用 Windows Defender 时。

七、运行 Chromium

编译完成后,你可以运行 Chromium 浏览器:

$ out\Default\chrome.exe

如果使用 Visual Studio 调试,你可以直接从 IDE 中启动。


八、运行测试

如果你想运行测试,可以使用以下命令:

$ autoninja -C out\Default unit_tests

运行测试时,你还可以指定过滤器来选择特定的测试:

$ out\Default\unit_tests.exe --gtest_filter="BrowserListUnitTest.*"


九、构建安装程序

如果你想构建一个完整的安装程序(包含所有必要的文件),可以使用以下命令:

$ autoninja -C out\Default mini_installer


十、更新你的源码

当你需要更新源码时,可以运行以下命令:

$ git rebase-update $ gclient sync -D

git rebase-update 会更新主 Chromium 仓库,并将本地分支移到最新的提交。gclient sync -D 会同步所有子仓库并删除不再需要的部分。


总结

编译和构建 Chromium 浏览器需要一些时间和系统资源,但按照上述步骤,你可以顺利地在 Windows 平台上完成这一过程。通过配置适当的硬件和构建参数,你可以加速编译,并开始调试和自定义 Chromium 源码。

相关推荐
csdndenglu19 小时前
Easy3D:一个轻量级、易用、高效的C++库,用于处理和渲染3D数据,无复杂要求时可替代VTK
开发语言·c++·图形渲染·3d渲染
XUHUOJUN19 小时前
Windows Server 2025 Stretch Cluster 架构详解
windows·microsoft·azure local
zhou1352848226719 小时前
Windows 配置 WSL (Ubuntu) 环境完整指南
linux·windows·ubuntu
HAPPY酷19 小时前
【ROS2】PyCharm 启动 Gazebo 仿真报错?从配置 Shell 到修复路径的全流程复盘
ide·chrome·pycharm
XUHUOJUN20 小时前
Windows Server 2025 RAC vs Stretch Cluster 技术定位
windows·microsoft·azure local
chh56320 小时前
C++--vector
开发语言·c++·学习·算法
zmzb010320 小时前
C++课后习题训练记录Day154
数据结构·c++·算法
sztomarch21 小时前
Disable-Download-Chrome-AI-Mode
前端·chrome
sg_knight21 小时前
Claude Code 安装指南(macOS / Linux / Windows WSL)
linux·windows·macos·claude·code·anthropic·claude-code
殳翰1 天前
下服务器端开发流程及相关工具介绍(C++)
开发语言·c++