0

    Win10下Chromium源码编译 (版本107.0.5304.122)

    2023.07.25 | admin | 116次围观

    1.准备工作部分操作必须外网,请自备代理电脑配置建议32G内存(至少8G,当然越多越好)硬盘空间,很多网上的教程都是100G,如果只是编译一个版本的确实够了,如果多个版本需要多预备硬盘空间,格式为NTFS,建议固态硬盘,机械会降低编译速度系统Windows10及以上2.确定编译的版本

    Chromium每天提交的Commit很多,没有经过完全的测试,可能在编译之后产生BUG,对于我这种编外人员不适合使用最新的源码来进行编译,也不建议读者使用不稳定的代码进行编译(当然喜欢尝鲜的什么版本都行)。

    获取稳定版本的版本有两种方式

    方式一: 安装Chrome浏览器,在关于页面找到版本号

    方式二: 在对应的发布版本,我使用的是107.0.5304.122

    3.构建说明

    在确定好自己要编译的版本后,需要找相对应的版本编译说明,用浏览器打开,在左侧的Tags中找到需要编译的版本:

    进入对应的Tag后在底部找到README.md的说明,在官方说明中不建议直接git clone仓库,而是根据链接的指引来获取源码。基本上不是跨越太多的版本编译说明基本是一样的,除了对Windows SDK和Visual Studio有要求。

    进入指引页面后选择Windows选项进入编译说明的页面,官方有对系统要求、Visual Studio以及Windows SDK都有详细说明

    我的配置:

    CPU: AMD 3700x

    内存: 32G

    硬盘: 1T m.2

    操作系统: Windows Server 2022(只要Windows 10以上就行)

    4.安装Visual Studio与SDK

    根据编译说明,需要安装VS 2017 (版本>=15.7.2) 或VS 2019(版本>=16.0.0),VS下载地址:

    安装编译所必须的组件,勾选左侧中的C++的桌面开发和右侧的C++ATL生成工具,另外还需要安装版本为10.0.20348.0的Windows SDK,可在单个组件中选择安装,或者单独安装,单独安装文件下载地址:

    安装完成Windows SDK后还需安装SDK调试工具,安装方法:控制面板 →程序 → 程序和功能 → 选择“Windows Software Development Kit”→更改→“Change”→勾选“Debugging Tools For Windows”→Change

    在安装完成组件和SDK后就开始配置系统环境变量:

    1. 添加系统变量 vs2019_install 变量值:为vs安装的具体目录,例如我的是:C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise

    2. 添加Windows SDK环境变量,变量名:WINDOWSSDKDIR 值为Windows 10 SDK的安装目录,我的是:C:\Program Files (x86)\Windows Kits\10

    5.安装depot_tools

    下载地址: ,解压到你能找到的文件夹中(不要使用资源管理器中的拖放或复制粘贴提取,不然可能.git目录不能正常复制出来,使用正常的压缩包工具之间解压到指定目录即可),解压完成后,需要将depot_tools目录添加到PATH环境变量中,因为depot_tools内置了git和python,所以需要将depot_tools放到最前面

    还需要再添加一个环境变量 DEPOT_TOOLS_WIN_TOOLCHAIN哪个浏览器可以看源码,其值为 0,作用是让 depot_tools 使用本地安装的 Visual Studio 版本(默认情况下,depot_tools 将尝试使用 google 内部版本):

    接下来初始化depot_tools,使用管理员权限运行CMD并设置代理,如果使用了软件设置系统全局代理的可以不用操作这一步

    set http_proxy=127.0.0.1:7890
    set https_proxy=127.0.0.1:7890

    执行gclient初始化

    没有配置过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
    git config --global branch.autosetuprebase always

    6.获取chromium代码

    有两种方式可以获取源码,在拉取源码之前,先建一个目录用来存放源码

    第一种,从官方拉取,这种方式需要全程代理

    git clone -b 107.0.5304.122 https://chromium.googlesource.com/chromium/src.git src

    第二种,通过国内的gitee拉取,拉取源码时不需要代理

    git clone -b 107.0.5304.122 https://gitee.com/mirrors/chromium.git src
    # 还原git仓库地址
    cd src
    git remote set-url origin https://chromium.googlesource.com/chromium/src.git

    不想拉取全部log的可以增加--depth参数(建议值100,太小可能会报错)

    因为使用的是自定义拉取的方式,所以还需要利用命令在src同级目录生成.gclient文件,然后同步所有的第三方依赖哪个浏览器可以看源码,同步过程中一般中断的情况都是因为网络原因,可以重新使用gclient sync 继续同步

    //通过命令行在src同级目录下生成.gclient文件
    gclient config --unmanaged https://chromium.googlesource.com/chromium/src.git
    //同步第三方依赖,这里建议开启系统全局代理 ,防止下载失败,根据网络和代理的情况,可能
    //需要几小时,中途失败可,继续重复执行下面的命令,直到成功
    gclient sync

    执行完毕如下图:

    7.编译浏览器

    1.默认方案编译

    运行命令行,进入已经拉取并同步了源码的 src 目录 ,运行一下命令

    //默认生成方案
    gn gen out\Default
    //等待生成方案结束后运行编译默认方案
    autoninja -C out\Default chrome
    

    2.带参数方案编译

    //执行以下命令会弹出记事本文件,可以配置编译参数
    gn args out\Release
    //编译默认模块
    autoninja -C out\Release chrome
    //编译安装版的安装程序包
    autoninja -C out\Release mini_installer

    参数说明:

    编译时间可能几小时(该吃饭的吃饭,该睡觉的睡觉),这是根据自身机器性能决定,我的机子配置偏差编译差不多花了两小时左右,如果编译过程中突然中断了可以继续执行编译命令继续编译

    编译结果

    版权声明

    本文仅代表作者观点。
    本文系作者授权发表,未经许可,不得转载。

    发表评论