Win10编译chrome

2023-09-18 08:23:10

一、系统准备

  • windows 10以上版本
  • 硬盘空余空间100G以上,磁盘格式为NTFS
  • 内存8G以上,推荐32G
  • 需要科学上网
  • 卸载杀毒软件(注意重启系统)

二、安装Visual Studio 2022

  • Visual Studio 2022(>=17.0.0)

    编译chromium时需要Visual Studio的支持。

在windows操作系统下编译Chromium需要使用Visual Studio 2022(>=17.0.0)来构建。Visual Studio也可以用来调试Chromium。在编译中主要使用clang-cl编译器,但同时需要Visual Studio的头文件、库和一些工具。如果您购买了Visual Studio的许可证,那么Visual Studio Community Edition应该是非常好的版本选择。当然如果您没有Visual Studio的许可证,使用Visual Studio Community也可以编译成功。

1.安装Visaul Studio Community 2022

首先到Visaul Studio 的官网下载安装器,为了后面的编译少出问题建议大家还是通过官网进行下载安装。
Visaul Studio 2022官网地址
在这里插入图片描述
您必须安装“使用c++进行桌面开发”组件和“MFC/ATL支持”子组件。这可以从命令行通过将这些参数传递给Visual Studio安装程序来完成:

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

具体操作如下:

进入安装器的下载目录并在该目录下打开cmd命令行工具,以下是我的操作过程供大家参考。
在这里插入图片描述

VisualStudioSetup.exe --add Microsoft.VisualStudio.Workload.NativeDesktop --add Microsoft.VisualStudio.Component.VC.ATLMFC --includeRecommended

在这里插入图片描述
安装命令后面的add选项可以为后续的安装过程选择“使用c++进行桌面开发”组件和“MFC/ATL支持”子组件的相关支持。

进入安装界面后,认真检查所选组件是否满足要求。
在这里插入图片描述
再次检查“单个组件”,重要的是以下三个SDK,确保已经选中。

在这里插入图片描述
确定无误后就可以进行安装了(此教程为后补,有些截图就不上了,以后有重新安装需求时再补吧)。

Visual Studio 2022安装成功之后,为其添加系统变量。
在这里插入图片描述

三 、配置depot_tools

1.拉取源码

在你的系统中选择一个空余空间比较大的磁盘(可用空间至少大于100G),并新建一个文件夹,后续的工作我们都会在这个文件夹下操作。

我在我的D盘下新建了一个src目录,进入该目录,打开git bash,使用git命令拉取depot_tools代码。

git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git

2.配置系统变量

depot_tools目录添加到系统变量中。
在这里插入图片描述
👿 注意:要将depot路径变量放在最前面。

另外,还要在环境变是中添加 DEPOT_TOOLS_WIN_TOOLCHAIN 变量,并将其设置为 0。这会告诉 depot_tools 使用本地安装的 Visual Studio (默认情况下,depot_tools 将尝试使用 google 内部版本)。
在这里插入图片描述

四、初始化gclient

完成前面的操作后,就可以初始化gclient了。

还是在D:\src目录下打开cmd(读者诸君根据自己的情况变通),使用命令gclient来初始化,该命令会自动下载后面所需要的编译工具。

gclient

在这里插入图片描述
如果出现上图说明gclient初始化正常,然后使用where python命令查看python命令的位置,如果你的系统中存在多个python版本,排在最前面的应当是你depot_tools目录下的python,我的上图是存在问题的,后来我把系统中原有的python系统变量都清除了。

在这里插入图片描述
App Execution Aliases这项服务可能与系统上安装的其他 python 有冲突,因此,需要将它关闭掉,具体方法是打开控制面板中的 “App execution aliases”,勾掉指向“python.exe”和“python3.exe”的复选框来禁用它们。

五.获取chromium源码

首先,配置 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

参照上述命令配置你的git,配置完成后认真检查git的全局变量是否已经改变。
在这里插入图片描述
接着,在src目录下创建一个chromium目录:

$ mkdir chromium && cd chromium

之后,运行fetch命令,将代码及其依赖check out出来:

$ fetch chromium

在这里插入图片描述
如果在checkout时,你不想要完整的repo历史记录,你可以给fetch添加--no-history标志,这样可以减少你获取代码的时间。

获取代码时,即使你网络很快,预计也要会花费一个多小时才能将它下载下来。而在较慢的网络上,则需要数个小时。所以,您必须配置好你的PC,使它在获取代码时不要休眠,否则失败了还要重新下载。

如果在获取子仓库时发生错误,你可以选择重新开始,或者进入到 chromium/src 目录,执行下面的命令来继续下载:

$ gclient sync

完成fetch后,它将创建一个隐藏的 .gclient 文件和一个 src 的目录。接下来,你需要切换到src目录下:

$ cd src

如果想加快下载速度,使用下面的命令。

fetch --nohooks --no-history chromium

六.构建项目

Chromium 使用 Ninja 作为其主要构建工具,并使用名为 GN 的工具来生成.ninja文件。您可以创建任意数量的具有不同配置的构建目录。命令如下:

$ gn gen out/Default

在这里插入图片描述

出现上图说明构建成功,可以进入out/Default文件夹,你可以发现多了很多文件。

如果构建过程中出现了错误,可以使用以下命令进行清理。

gn clean out/Default
  • 您只需为每个新的构建目录运行一次,Ninja 将根据需要更新构建文件。
  • 可以将Default换成别的名字,但应该在out子目录下。
  • 对于其他构建参数,包括Release设置或使用 Visual Studio 的版本,请参阅 GN build configuration。默认创建的是与当前操作系统和CPU匹配的Debug版本。
  • 有关 GN 的更多信息,可以运行gn help阅读快速入门指南

七.编译Chromium

可以使用以下命令构建 Chromium(“chrome”目标):

$ autoninja -C out\Default chrome

autoninja是一个包装器,它会为ninja提供最佳的参数。

关于一些参数的详细信息,可以通过 gn ls out/Default获取。

整个编译过程非常漫长,并且还会有各自报错,通过上述操作编译出的chrome,是全功能的,所以出错的概率也大一些,不过这一步建议大家必须经历一下,然后再进行相关功能模块的裁剪。

💁‍♂ 在编译过程中,最好还是要人工守护一下,打开资源管理器,观察CPU和磁盘的占用情况,如果发现CPU和磁盘占用都不高,cmd命令窗口输出内容长时间没有变化时,最好在命令窗口中点击一下回车键,再次激活一下命令状态。

💁‍♂ 关闭电源选项中的休眠设置。

八、运行chrome

经过前面的步骤,编译完成后,会在out/Default目录下生成chrome.exe文件,这个就是我们自己编译后的chrome了。

在这里插入图片描述
上图是我编译成功后的截图,虽然有报错信息,但是编译成功了,我是用了接近一个星期的时间才编译通过的。所以希望大家在编译的过程中不要放弃。

再截个图吧。
在这里插入图片描述
对比在Ubuntu2204中的编译过程,在win10下真是困难重重,几次都想放弃了。

感谢李超大佬的文章给我很大的帮助,接下来我会对chrome进行个性化裁剪以适应我的需求,后续会把我的经历分享出来。

李超的知乎:Windows下编译Chome浏览器

感谢龙泉寺扫地僧,扫地僧同时也是miniblink的主要开发者,从他的博客中汲取了许多知识,学习中。。

更多推荐

Linux安装包 | Git使用 | NFC搭建

dpgt使用当谈到基于Debian的操作系统中的软件包管理工具时,dpkg是一个重要的工具。它是Debian系统中用于安装、升级、配置和卸载软件包的命令行工具。以下是对dpkg的详细介绍:软件包管理:dpkg可以管理系统中的软件包。它可以安装单个或多个软件包,并处理软件包之间的依赖关系。通过dpkg-i命令,可以安装软

固定资产管理系统都有哪些功能呢

固定资产管理系统作为企业资产管理的重要工具,具有提高效率、降低成本、保证资产合理使用的多种功能。以下是一些典型的功能:资产登记和信息管理:系统可以自动记录公司的固定信息,包括资产名称、型号、购买日期、原始价值、折旧方法、折旧年限等。同时,系统还支持自动更新和查看资产信息。资产申请和偿还:员工可以通过平台申请或偿还资产,

浅谈KNX总线智能照明控制系统在北京南站房中的应用

安科瑞华楠摘要:本文简要介绍了i-busEIB/KNX智能建筑控制系统的基本原理及在北京南站房中的成功应用。阐述了这一系统强大的系统功能、灵活的控制方式节能效果。关键词:i-bus智能建筑控制;控制系统;节能1、工程概况北京新南站位于南护城河以南,马家堡西路以东,南二环右安门外东庄公园内,距离老南站0.5km。站内总建

[JAVAee]SpringBoot日志文件

日志的作用日志可以帮助我们发现程序的问题并进行定位.日志还可以记录用户的登录信息,分析用户的意图.日志能记录程序执行的时间,记录数据.为日后的程序优化提供数据支持.SpringBoot中的日志在SpringBoot中,内置的日志的框架(SLF4J+logback).框架说明slf4j是日志的门面,而logback是日志

Linux命令历史记录管理:使用history命令提高工作效率

文章目录引言1.1关于history命令1.2history命令的作用和用途基本用法2.1查看历史命令列表2.2执行历史命令2.3使用历史命令编号历史命令记录和保存3.1历史命令的存储位置3.2修改历史命令记录数量3.3清除历史命令记录搜索历史命令4.1使用关键字搜索4.2按日期和时间搜索4.3结合其他命令进行高级搜索

众佰诚:抖音开网店选品要怎么做

在移动互联网时代,抖音已经成为了一个风靡全球的社交媒体平台,吸引了数以亿计的用户。因此,许多人看到了在抖音上开设网店的商机,但要成功经营一家抖音网店,选品是至关重要的一环。下面将介绍一些关于如何在抖音上选择合适的商品的方法。确定目标受众:在开设抖音网店之前,首先要明确自己的目标受众是谁。了解你的受众的年龄、性别、兴趣爱

MLAgents (1) 球移动到指定立方体目标

1、ML-Agents库介绍ML-Agents库,训练用于2D、3D、VR/AR游戏的智能agent,经过训练的agent可用于多种目的,包括:控制NPC行为(采用各种设置,例如多个agent和对抗)、对游戏内部版本进行自动化测试、以及评估不同游戏设计决策的预发布版本2、Unity中创建立方体、球和地面球——玩家移动和

【iOS】ViewController的生命周期

文章目录前言一、UIViewController生命周期有关函数二、执行顺序注意点loadview:前言在iOS开发中UIViewController扮演者非常重要的角色,它是视图view和数据model的桥梁,通过UIViewController的管理有条不紊的将数据展示在视图上。作为UIKit中最基本的一个类,一般

数据可视化大屏模板 | 保姆级使用教程

近来很多朋友私信咨询怎么下载使用数据可视化大屏模板,在这里就给大家做一个相对简单的教程总结。有需要的朋友记得先收藏保存,以便不时之需。数据可视化大屏制作软件:奥威BI系统数据可视化报表模板板块:模板秀主要操作:点击、拖拉拽适用人群以及场景:所有具体操作步骤:1、登录奥威BI系统后,通过点击、拖曳的方式上传数据源(该过程

【深度学习】 Python 和 NumPy 系列教程(廿二):Matplotlib详解:2、3d绘图类型(8)3D饼图(3D Pie Chart)

一、前言Python是一种高级编程语言,由GuidovanRossum于1991年创建。它以简洁、易读的语法而闻名,并且具有强大的功能和广泛的应用领域。Python具有丰富的标准库和第三方库,可以用于开发各种类型的应用程序,包括Web开发、数据分析、人工智能、科学计算、自动化脚本等。Python本身是一种伟大的通用编程

虚拟人运营 | 金融品牌如何借助数字人IP撬动年轻圈层?

近年来,金融行业在不断尝试寻找一种新方式,去探索触及Z世代年轻圈层,数字人作为数字化时代的新介质,成为了金融业链接年轻人的新载体。在银行的应用场景里,主要打造智能客服、数字员工、虚拟主播等。如浦发银行数字员工“小浦”、百信银行数字员工“AIYA”、宁波银行智能客服“小宁”、平安银行虚拟主播“平安小财娘”等等...01数

热文推荐