浏览器定制 | 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文档说明。

在这里插入图片描述

对 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这个可执行文件,闪现在我眼前的是一个浏览器。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/63877.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用webrtc-streamer查看实时监控

摄像头配置(海康摄像头为例) 摄像头视频编码应改成H264格式 webrtc-streamer下载 webrtc-streamer下载地址 下载后解压出来双击运行,端口默认8000 VUE2项目引入文件 在项目静态文件“public”中需引入两个js文件“webrtcstreamer.js”与“…

Android四大组件——Activity(二)

一、Activity之间传递消息 在&#xff08;一&#xff09;中&#xff0c;我们把数据作为独立的键值对进行传递&#xff0c;那么现在把多条数据打包成一个对象进行传递&#xff1a; 1.假设有一个User类的对象&#xff0c;我们先使用putExtra进行传递 activity_demo06.xml <…

MySQL其四,各种函数,以及模拟了炸裂函数创建用户等操作

目录 一、MySQL中的函数 1、IFNULL 2、IF 3、case &#xff08;难点&#xff09; 4、exists(难) --存在的意思 二、常见的函数 1、字符串函数 2、数学函数 3、日期函数 &#xff08;使用频率不是很高&#xff09; 4、其他函数 5、关于字符集的问题 6、mysql炸裂函数…

泷羽Sec-Burp Suite自动刷漏洞-解放双手

声明&#xff01; 学习视频来自B站up主 **泷羽sec** 有兴趣的师傅可以关注一下&#xff0c;如涉及侵权马上删除文章&#xff0c;笔记只是方便各位师傅的学习和探讨&#xff0c;文章所提到的网站以及内容&#xff0c;只做学习交流&#xff0c;其他均与本人以及泷羽sec团队无关&a…

CSS在线格式化 - 加菲工具

CSS在线格式化 打开网站 加菲工具 选择“CSS在线格式化” 或者直接访问 https://www.orcc.online/tools/css 输入CSS代码&#xff0c;点击左上角的“格式化”按钮 得到格式化后的结果

[vscode] 创建erlang gen_serve 文件快捷方式

点击左下角功能按钮&#xff0c;代码片段&#xff0c;新建全局代码片段&#xff0c;然后输入自定义内容就可以 {"Erlang gen_server": {"prefix": "genserver","body": ["-module(${1:module_name}).","-behaviour(ge…

OpenGL 几何着色器高级应用

几何着色器高级应用 概念回顾 几何着色器(Geometry Shader)是 OpenGL 管线中的可选着色器阶段,位于顶点着色器(Vertex Shader) 和光栅化阶段 之间。 其核心功能是基于输入的图元(如点、线或三角形),生成新的图元,或对输入的图元进行修改。 几何着色器的执行是以图元…

机器学习:监督学习、无监督学习

1. 引言 机器学习是一种人工智能领域的技术&#xff0c;它旨在让计算机通过学习数据和模式&#xff0c;而不是明确地进行编程来完成任务。 机器学习分为监督学习、无监督学习、半监督学习、强化学习 四种。 ​ 2. 监督学习 2.1 什么是监督学习 定义&#xff1a;根据已有的数…

使用html和JavaScript实现一个简易的物业管理系统

码实现了一个简易的物业管理系统&#xff0c;主要使用了以下技术和功能&#xff1a; 1.主要技术 使用的技术&#xff1a; HTML: 用于构建网页的基本结构。包括表单、表格、按钮等元素。 CSS: 用于美化网页的外观和布局。设置字体、颜色、边距、对齐方式等样式。 JavaScript…

JPG 转 PDF:免费好用的在线图片转 PDF 工具

JPG 转 PDF&#xff1a;免费好用的在线图片转 PDF 工具 在日常工作和生活中&#xff0c;我们经常需要将图片转换为 PDF 格式。无论是制作电子文档、准备演示材料&#xff0c;还是整理照片集&#xff0c;将图片转换为 PDF 都是一个常见的需求。今天为大家介绍一款完全免费、无需…

C++ webrtc开发(非原生开发,linux上使用libdatachannel库)

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、libdatachannel库的下载和build二、开始使用 1.2.引入库3.开始使用 总结 前言 使用c开发webrtc在互联网上留下的资料甚少&#xff0c;经过我一段时间的探…

深入理解 Apache Shiro:安全框架全解析

亲爱的小伙伴们&#x1f618;&#xff0c;在求知的漫漫旅途中&#xff0c;若你对深度学习的奥秘、JAVA 、PYTHON与SAP 的奇妙世界&#xff0c;亦或是读研论文的撰写攻略有所探寻&#x1f9d0;&#xff0c;那不妨给我一个小小的关注吧&#x1f970;。我会精心筹备&#xff0c;在…

python学习笔记—7—变量拼接

1. 字符串的拼接 print(var_1 var_2) print("supercarry" "doinb") name "doinb" sex "man" score "100" print("sex:" sex " name:" name " score:" score) 注意&#xff1a; …

ElasticSearch 搜索、排序、分页功能

一、DSL 查询文档 ElasticSearch 的查询依然是基于 json 风格的 DSL 来实现的。 官方文档&#xff1a;https://www.elastic.co/guide/en/elasticsearch/reference/8.15/query-dsl.html 1.1 DSL 查询分类 常见的查询类型包括&#xff1a; 查询所有&#xff1a;查询出所有数…

2025系统架构师(一考就过):选择题基础知识二

考点14&#xff1a;知识产权和标准化 真题1&#xff1a;甲软件公司受乙企业委托安排公司软件设计师开发了信息系统管理软件&#xff0c;由于在委托开发合同中未对软件著作权归属作出明确的约定&#xff0c;所以该信息系统管理软件的著作权由(甲) 享有。 真题2&#xff1a;根据…

【ubuntu18.04】ubuntu18.04安装EasyCwmp操作说明

参考链接 Tutorial – EasyCwmphttps://easycwmp.org/tutorial/ EasyCwmp 介绍 EasyCwmp 设计包括 2 个部分&#xff1a; EasyCwmp 核心&#xff1a;它包括 TR069 CWMP 引擎&#xff0c;负责与 ACS 服务器的通信。它是用 C 语言开发的。EasyCwmp DataModel&#xff1a;它包…

Jenkins流水线初体验(六)

DevOps之安装和配置 Jenkins (一) DevOps 之 CI/CD入门操作 (二) Sonar Qube介绍和安装(三) Harbor镜像仓库介绍&安装 (四) Jenkins容器使用宿主机Docker(五) Jenkins流水线初体验(六) 一、Jenkins流水线任务介绍 之前采用Jenkins的自由风格构建的项目,每个步骤…

Spring Boot整合 RabbitMQ

文章目录 一. 引入依赖二. 添加配置三. Work Queue(工作队列模式)声明队列生产者消费者 四. Publish/Subscribe(发布订阅模式)声明队列和交换机生产者消费者 五. Routing(路由模式)声明队列和交换机生产者消费者 六. Topics(通配符模式)声明队列和交换机生产者消费者 一. 引入依…

Qwen 论文阅读记录

本文仅作自己初步熟悉大模型&#xff0c;梳理之用&#xff0c;慢慢会更改/增加/删除&#xff0c;部分细节尚未解释&#xff0c;希望不断学习之后&#xff0c;能够完善补充。若有同道之人&#xff0c;欢迎指正探讨。 关于后面的code-qwen and math-qwen&#xff0c;我个人认为依…

JCR一区牛顿-拉夫逊优化算法+分解对比!VMD-NRBO-Transformer-BiLSTM多变量时序光伏功率预测

JCR一区牛顿-拉夫逊优化算法分解对比&#xff01;VMD-NRBO-Transformer-BiLSTM多变量时序光伏功率预测 目录 JCR一区牛顿-拉夫逊优化算法分解对比&#xff01;VMD-NRBO-Transformer-BiLSTM多变量时序光伏功率预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 1.中科院…