侧边栏壁纸
博主头像
秋码记录

一个游离于山间之上的Java爱好者 | A Java lover living in the mountains

  • 累计撰写 142 篇文章
  • 累计创建 317 个标签
  • 累计创建 46 个分类

浏览器定制 | Windows11 编译 Chromium 133.0.6885.0(截稿前Chromium最新版之编译篇[一])

序章回顾

其实,在此之前,我已经发表过如何在Windows下编译Chromium及前期环境准备的系列文章了。

那么,既然之前已然撰写过了,缘何又出这么一篇类似的文章呢?

倘若你看过我那几篇关于windows编译Chromium的系列文章,你或许就会明白我写这篇文章的意义了。

可假使你还没看过,也没关系,毕竟彼时windows系统版本还处于win8.1,机器很久了,光是编译,就费了两天一夜,期间CPU一直处于高负荷状态,途中不能操作任何事物,虽然到最后是编译出来。

然而,当我双击打开刚刚编译出来的chrome.exe时,却并不能打开。

花费了这么长的时间来编译,可最终却不能打开,气得我一度将out\Default删除掉,重新编译它,然而,又将是一个漫长的编译过程。

很显然,导致编译时间过长的罪魁祸首就是我的那台(为了区别于赤巨资购买了可用于把玩Mechine Learning的新笔记本)笔记本过于老旧,虽然我期间也为这台笔记本,把内存增加到了16G,可终究还是无法补救其卡顿的`悲惨命运。

新电脑拉开了新篇章

对于那台老旧电脑,若用来编译大型项目(诸如:Chromium)时,它将是有心无力廉颇老矣,善能战否?

可即便是不去编译项目,光是打开号称宇宙界最耗内存的微信,与我弟视频,期间是不能运行其他软件,否则的话,它就直接闪退。

凡此种种缘故,也正借artificial intelligence(AI)这股强劲的风,我便有了买台新点电脑的预算。

其实,也在新电脑编译过chromium 103.0.5060.66,可最终我还是选择了编译chromium 最新版(最新版只限于截稿前),毕竟这都是高配置的电脑,何不编译最新版本呢,之前那台电脑是受到客观因素,故而编译了Chromium 103.0.5060.66这个版本。

系统要求

  • 一台至少具有 8GB RAM 的 x86-64 计算机。强烈建议超过 16GB。
  • NTFS 格式的硬盘驱动器上至少有 100GB 的可用磁盘空间。FAT32 将不起作用,因为某些 Git 包文件大于 4GB。
  • Visual Studio 的适当版本,如下所述。
  • Windows 10 或更高版本

visual studio

新版Chromium 需要 Visual Studio 2022 (>=17.0.0) 才能构建。Visual Studio 还可用于调试 Chromium。使用 clang-cl 编译器,但需要 Visual Studio 的头文件、库和一些工具。如果 Visual Studio Community Edition 的许可证适合您,则应该可以正常工作。必须安装“使用 C++ 进行桌面开发”组件和“MFC/ATL 支持”子组件。这可以通过将这些参数传递给 Visual Studio 安装程序从命令行完成。

这跟我之前安装visual studio 2019 community一样的。对于Chromium每个版本所对应的visual studio版本要求也各不相同。

Windows SDK

  • Windows 11 SDK 版本 10.0.22621.2428。这可以单独安装,也可以通过选中 Visual Studio 安装程序中的相应框来安装。
  • Windows 11)SDK 调试工具 10.0.22621.755 或更高版本。需要此版本的调试工具才能支持读取 Chrome 用于允许大于 4 GiB PDB 的大页面 PDB。这可以在安装匹配的 Windows SDK 版本后从以下位置安装:控制面板 -> 程序和功能 -> Windows 软件开发工具包 [版本] -> 更改 -> 适用于 Windows 的调试工具。如果在 ARM64 Windows 上构建,则需要从另一台计算机手动复制 Debuggers\x64 目录,因为它没有安装在 ARM64 上,并且需要它,无论您是在 ARM64 上构建 Chromium for x64 还是 ARM64。

警告:在足够旧版本的 Windows(1909 或更早版本)上,使用 26100 SDK 时,dawn(或相关组件)可能会失败,并出现与 D3d 相关的错误。这是因为新 SDK 中的 d3dcompiler_47.dll 文件会尝试动态链接旧系统上默认不存在的通用 C 运行时版本。如果您遇到这些错误,可以更新系统上的 UCRT,或者安装 22612 SDK 并使用其中包含的 d3dcompiler_47.dll 文件,该文件会静态链接 UCRT。

此问题也可能表现为 DLL 无法加载 .__CxxFrameHandler4

Chromium每个版本编译环境准备,都可在源码目录下找到每个系统的build文档说明。

image-20241212204239882

对 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 core.preloadindex true
$ git config --global core.fscache true
$ git config --global branch.autosetuprebase always

虽然不一定是必需的,但将 git 配置为允许长路径支持(超出 Windows MAX_PATH限制)可能会有所帮助:

$ git config --global core.longpaths true

下载 depot_tools 及配置环境变量

depot_toolsgoogle内部工具,用来管理项目,它内置了pythongit,所以在配置环境变量时,必须将它配在pythongit前,要不然的话,会报错。

下载地址 https://storage.googleapis.com/chrome-infra/depot_tools.zip

编译 Chromium

  • 1、初始化 depot_tools

    打开一个terminal,输入以下命令,在此之前,你得设置好网络(你应该懂得!)

    gclient
    
  • 2、在你电脑任何一个盘符下,新建chromium文件夹(当然你也可以起其他名称,这点随你意。)

    mkdir chromium && cd chromium
    
  • 3、fetch chromium源码。

    fetch chromium
    

    如果您不想要完整的存储库历史记录,可以通过将标志添加到 来节省大量时间。--no-history fetch

    预计即使在快速连接上,该命令也需要一个多小时,而在较慢的连接上则需要许多小时。您应该配置您的 PC,使其在获取过程中不会进入睡眠或休眠状态,否则可能会发生错误。如果在获取子存储库时出现错误,那么您可以重新开始,或者您可以通过转到 chromium/src 目录并运行以下命令来纠正它们:

    gclient sync
    
  • 4、生成构建文件。

    $ gn gen out\Default
    
  • 5、开始编译。

    autoninja -C out\Default
    

    编译的快慢,取决于你电脑的配置,我这台新电脑也得花上3个小时多。

运行编译出来的chromium

经过漫长的编译,这台新电脑终是不辱使命的完成了它首次编译如此巨大的工程。

我双击chrome.exx这个可执行文件,闪现在我眼前的是一个浏览器。

image-20241211211422081

不说是彻底搞懂,至少让你不再惧怕c/c++指针,以及各种奇葩指针变种
« 上一篇 2024-11-29
vs code远程调试Linux服务器上的php代码
下一篇 » 2024-12-19

相关推荐

  • 安装 depot_tools 和 Windows 10 SDK 为在Windows下构建基于 chromium 的浏览器(103.0.5060.68 之二) 2024-09-22 15:26:43 +0800 +0800
    安装 depot_tools 和 Windows 10 SDK 为在Windows下构建基于 chromium 的浏览器(103.0.5060.68 之二) 为何要安装depot_tools 虽然我们在上一篇 Windows构建基于 Chromium 的浏览器之环境准备篇安装 Visual Studio(103.0.5060.68 之一) ,已经在Windows系统安装好了Visual Studio 2019 Community版本。 然而chromium源码工程之庞大,并不是我们平时坐在写字楼里,捣鼓了几个月,勉强符合上级领导的要求而上线的项目,这也就为什么chromium 官方文档里要求你在build里,需要有100G的空闲磁盘的缘故了。 那么,如此巨大的项目,以及如何很好来管理chromium依赖的第三方library呢? 我想这时,肯定会脱口而出,“使用git来管理项目,并且还能有效地处理好第三方library。” 的确,chromium官方就是采用了git来管理这么庞大的项目。 但chromium 源码所依赖的第三方library可不是一两个而已,我们从图中也是可以看出,chromium依赖的第三方library可不是一般的多啊!那是非常的多啊! 我借助了visual studio code这款IDE,在Terminal中输入以下命令,可以计算出当前路径下拥有多少个子文件夹(直到第一级,不会去递归计算哦!) (Get-ChildItem -Directory | Measure-Object).Count 注意:这行命令只在`PowerShell`中生效,这也就为什么我会借助`visual studio code`这款`IDE`的缘故。 或许你有点纳闷,这visual studio code是不是我们在上一篇安装的visual studio呢? 初次捣鼓的你,难免会被这两者给弄混淆了。 这其实也不能全怪你啦!毕竟visual studio系列与visual studio code的应用程序图标是一样,只是颜色差异而已罢了,且它们同是microsoft公司的产品。 对于chromium依赖了这么多第三方library,你总不可能对每个library手动写git submodule吧! 而此时的你可能会想到可以借助python来编写脚本,用来synchronized(同步)chromium第三方library。 为此,chromium 官方提供了一个用于synchronized第三方library的工具,它不仅能synchronized thried_party,而且还能build chromium,那么,它是谁呢? 它就是本文的主角——depot_tools.depot(是仓库的意思)。 安装depot_tools 要想安装depot_tools工具,那么毫无疑问的是从chromium官网上下载depot_tools工具。 下载地址 https://storage.googleapis.com/chrome-infra/depot_tools.zip,将其解压至 任意不包含中文或空格的目录里。 注意:不要使用鼠标拖拽或复制粘贴,否则其中 .git 目录可能不会正常复制过来,请使用 zip 压缩包管理工具直接解压到目标目录。 当我们解压下载下来的depot_tools压缩包后,需要在系统环境变量中添加depot_tools的路径。 注意:如果你的电脑安装了`python`和`git`,请将`depot_tools`路径添加在它们之前,因为`depot_tools`工具里内置了`python`和`git`。 随后,我们需要再设置一个DEPOT_TOOLS_WIN_TOOLCHAIN的变量名,其变量值为0。作用是让 depot_tools 使用本地安装的 Visual Studio 版本(默认情况下,depot_tools 将尝试使用 google 内部版本): 然后cmd一个命令窗口,先是设置网络。 注意:该设置网络只会在当前窗口有效,也就说你每新打开一个新窗口,都需要设置网络`。 # windows set http_proxy=127.
       chromium  
  • Git版本控制教程之在Visual Studio Code中如何使用(四) 2021-07-24 07:27:10 +0000 UTC