从零开始:在 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

    当前的 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

    • 可能的报错

      报错一
      
      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
    • 垃圾玩意删不掉
    • 配置环境变量

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

      • 在环境变量中添加:

        DEPOT_TOOLS_WIN_TOOLCHAIN=0

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

    • 运行 gclient

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

        $ gclient


    四、获取 Chromium 源码
    1. 配置 Git
      配置 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
    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 源码。

    评论
    成就一亿技术人!
    拼手气红包6.0元
    还能输入1000个字符
     
     条评论被折叠 查看
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

    当前余额3.43前往充值 >
    需支付:10.00
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝 规则
    hope_wisdom
    发出的红包

    打赏作者

    ปรัชญา แค้วคำมูล

    你的鼓励将是我创作的最大动力!

    ¥1 ¥2 ¥4 ¥6 ¥10 ¥20
    扫码支付:¥1
    获取中
    扫码支付

    您的余额不足,请更换扫码支付或充值

    打赏作者

    实付
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

    1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
    2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

    余额充值