记录下:win10 AMD CPU 下载 Chromium 源码并编译(版本 103.0.5060.66)

文章目录

  • 一、一些主要地址连接
  • 二、环境配置
    • 1、如何找官方环境文档:
      • 1.1 如何找到这个不同版本的文档:
    • 2、电脑配置:
    • 3、visual studio 2019安装:
      • 3.1 社区版下载:
      • 3.2 安装配置:
    • 4、debugtools配置
      • 4.1 如何判断成功:
    • 5、安装:depot_tools
      • 5.1 注意点1:解压到目标路径
      • 5.1 注意点2 python相关:
      • 5.3 输入gclient 更新
    • 6、环境变量配置
    • 7、chromium源码拉取和编译
      • 7.1 源码拉取:
        • 方法1:【不推荐】
        • 方法2:【源码clone】
        • 方法3:【gitee镜像】
      • 7.2、生成 .gclient 文件 和 同步第三方依赖
        • 7.2.1 生成 .gclient 文件
        • 7.2.2 同步第三方依赖 gclient sync
        • 7.2.3 可能出现报错:
      • 7.3 、编译调试版浏览器
      • 7.4、编译正式版浏览器
        • 7.4.1 、在 .gclient 文件中添加配置项 "checkout_pgo_profiles": True:
        • 7.4.2 更新依赖:
        • 7.4.3 编译:
  • 参考:

一、一些主要地址连接

Chromium 的官网是 https://www.chromium.org/
Git 仓库是 https://chromium.googlesource.com/chromium/src.git

gitee仓库地址镜像:https://gitee.com/mirrors/chromium/tags
版本分支说明 https://chromiumdash.appspot.com/branches

单个版本:https://chromium.googlesource.com/chromium/src.git/+/refs/tags/103.0.5060.66/

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

本测试过程,主要参考:win10 下载 Chromium 源码并编译(版本 103.0.5060.66)
来弄的,一些环境配置也有网上其他参考的。

参考须知如何版本和我的不一样,自己百度哈,版本不一样,每个人的电脑环境也不一样,估计会出现形形色色的各种奇怪问题。 问我我也不一定知道,比较这个项目弄一次耗时还是很久的。

搞了一俩周,总算编译出来了,记录下来流程,防止后续再用到。

来个成功的图片,鼓励正在尝试的小伙伴。

在这里插入图片描述

二、环境配置

参考地址,还是先按官方的文章步骤配好,比如,由于我组装的电脑,是amd的cpu,看到官方说是需要Intel 的时候,以为我的电脑无法弄。只有看到我参考的文章,作者说是他的是amd的cpu,瞬间感觉自己的也可以,其实大学时候的笔记本是intel,但是内存只有12G,很旧了,弄了好久,最后也弄好了,就是编译和下载时候都很慢,编译时候cpu和内存都是爆满的。

1、如何找官方环境文档:

不同版本的chrome,需要的环境配置还有vs版本都是不一样的,我这里只有还是使用103的。
官方安装步骤:
https://chromium.googlesource.com/chromium/src.git/+/refs/tags/103.0.5060.66/docs/windows_build_instructions.md

1.1 如何找到这个不同版本的文档:

第一步,选择想编译的版本:
版本分支说明 https://chromiumdash.appspot.com/branches

在这里插入图片描述

第二步,进入需要的版本,比如:110版本
第三步,选择一个数字开头的,这样才会有这个tag标签,直接通过提交id,估计gitee镜像拉起代码时候找不到,但是tag肯定方便,文档也能方便,如果第一页没有,那就下一页,肯定能找到当前版本对应的数字tag版本。

在这里插入图片描述
比如:110.0.5481.183-r1 ,我们只需要前面的数字版本:110.0.5481.183.

单个版本:https://chromium.googlesource.com/chromium/src.git/+/refs/tags/103.0.5060.66/

把后面的tag替换成 110.0.5481.183 即可直达目标版本的页面。
比如:https://chromium.googlesource.com/chromium/src.git/+/refs/tags/110.0.5481.183

最下面,有参考文档:

在这里插入图片描述

在这里插入图片描述

选择window就是当前版本,需要的编译参考文档。
比如:
https://chromium.googlesource.com/chromium/src.git/+/refs/tags/110.0.5481.183/docs/windows_build_instructions.md

本地主要还是参考:
https://chromium.googlesource.com/chromium/src.git/+/refs/tags/103.0.5060.66/docs/windows_build_instructions.md

2、电脑配置:

其实,amd的cpu,也可以,我本地已经成功编译了。
cpu可以忽略,其他都必须了,内存尽量16G以上吧,我的旧笔记版12G的测试,编译时候直接100%。
在这里插入图片描述

A 64-bit Intel machine with at least 8GB of RAM. More than 16GB is highly recommended.
At least 100GB of free disk space on an NTFS-formatted hard drive. FAT32 will not work, as some of the Git packfiles are larger than 4GB.
An appropriate version of Visual Studio, as described below.
Windows 10 or newer.

我的amd的组装机:测试也是可以的

在这里插入图片描述

3、visual studio 2019安装:

想编译的版本不一样,估计需要不一样的visual studio,具体参考需要版本的官方文档,我这里用的2019版本,社区版就行。

3.1 社区版下载:

官方下载地址:
https://learn.microsoft.com/en-us/visualstudio/releases/2019/release-notes

在这里插入图片描述

3.2 安装配置:

安装位置,可以自己改,记录位置就行,默认C盘也可以。后面配置环境要用
c++桌面开发必选,后面的几个参考我的勾选即可。

在这里插入图片描述

这个需要耗时点时间,具体看自己网速。

4、debugtools配置

找到卸载软件地方:
在这里插入图片描述

搜索到 window sdk,
在这里插入图片描述

点击修改:
在这里插入图片描述

点击next:
下面图,勾选debugging tools ,更改即可。

在这里插入图片描述

4.1 如何判断成功:

进入这个目录:
C:\Program Files (x86)\Windows Kits\10 看看是否有 Debuggers 目录,有的话就好了。

在这里插入图片描述

5、安装:depot_tools

下载depot_tools 官方文档有下载地址: https://storage.googleapis.com/chrome-infra/depot_tools.zip

5.1 注意点1:解压到目标路径

我这里直接放d盘:D:\depot_tools

下载之后,直接解压,不要解压后复制,直接解压到指定目录。复制可能导致文件缺失。

在这里插入图片描述

5.1 注意点2 python相关:

1、 解压的depot_tools 目录: 添加到系统环境path的最前面,(如果安装有python,要python最前面)

在这里插入图片描述
输入cmd,where pythonpython --version确认是否设置OK。

在这里插入图片描述

2、确保没有 PYTHONHOME ,因为之前安装过conda的python3版本,depot_tools 依赖python2,

不然后面可能出错,电脑重启了,截图没有了。
如果有PYTHONHOME ,并且不是python2,更新gclient会出现模块依赖错误。
这个我是自己环境遇到的,搜了半天没有解决,一点一点找系统环境变量,才解决的,特意说下这个点。
网上都没有说这种咋解决。

5.3 输入gclient 更新

记得开启fq代理:

有以下方式:
方式1:代理开启端口:
git config --global http.proxy 127.0.0.1:7890
git config --global https.proxy 127.0.0.1:7890

方式2:代理全局

方式3:我直接sstap代理:不走中国IP也可以。

我直接方式3,省事。

cmd进入depot_tools目录:我这里是 D:\depot_tools

输入gclient ,更新gclient 。
等会十来分钟,具体看代理网速了。

6、环境变量配置

我这里vs安装目录:D:\09_chromium\VisualStudio\2019

DEPOT_TOOLS_WIN_TOOLCHAIN=0
GYP_GENERATORS=msvs-ninja,ninja
GYP_MSVS_OVERRIDE_PATH=D:\09_chromium\VisualStudio\2019
# vs版本数字
GYP_MSVS_VERSION=2019			
#名称 和版本有关,如果是2022,那就是 vs2022_install
vs2019_install=D:\09_chromium\VisualStudio\2019WINDOWSSDKDIR=C:\Program Files (x86)\Windows Kits\10

你们应该这几组变量,应该只需要改个VisualStudio安装目录,还有版本号,我的2019版本,GYP_MSVS_VERSION对应的是2019,如果你安装的是2022版本,那就是2022,对应的vs2019_install的key,应该是vs2022_install.应该只有这俩个地方有关。其他应该不用更改。

在这里插入图片描述

7、chromium源码拉取和编译

7.1 源码拉取:

有三种方式,第一种我试了好几次,搞了俩天都没有下载完成。
后来就搜索第三种方法,发现最后成功了。

方法1:【不推荐】

创建一个文件夹,在cmd中输入
fetch –-no-history chromium
中间断开,可以用gclient sync同步

这方法我试了几次,都是下载到58%不行了,每次好几个小时下载,最后还是失败。

方法2:【源码clone】

git clone --depth 100 -b 103.0.5060.66 https://chromium.googlesource.com/chromium/src.git src

这里的103.0.5060.66就是tag分支,前面如何确定版本的数字,这里就需要用到了。

方法3:【gitee镜像】

tag名称103.0.5060.66根据自己的版本自己改,可以试试。

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

参数说明:

–depth 100 意思是拉取深度为100,这将会拉取一些 log,因为编译脚本会基于仓库的 log 反查版本发布时间。如果这个值太小,可能会查不到,因而报错。所以,建议设为 100 或更大些。或者,直接去掉这个参数,但这样将拉取全部的
log,特别慢。
-b 103.0.5060.66 指定拉取的 tag 版本。

在这里插入图片描述

7.2、生成 .gclient 文件 和 同步第三方依赖

7.2.1 生成 .gclient 文件

gclient config --unmanaged https://chromium.googlesource.com/chromium/src.git

7.2.2 同步第三方依赖 gclient sync

第三方依赖,是指编译 chromium 时用到的软件,在 Windows 和 Linux 上分别使用不同的依赖包,它们并没有包含到 chromium 的仓库里。

gclient sync

在这里插入图片描述

7.2.3 可能出现报错:

No such file or directory:
‘F:\_chromium\chromium\src\third_party\boringssl\src’

在这里插入图片描述
这个错误不一定出现,我的正好遇到了,另一台旧笔记本测试没有出现这个问题。

然后就正常新建一个空文件夹src在,F:\_chromium\chromium\src\third_party\boringssl目录下。F:\\_chromium\\chromium\\src是我下载的Gitee源码目录。

如果没有出现忽略即可。

再次同步完成:在这里插入图片描述

7.3 、编译调试版浏览器

进入 F:\_chromium\chromium\src 目录编译:

cd src# 生成方案
gn gen out\Default# 编译
autoninja -C out\Default chrome

指令 gn gen out\Default 生成的方案默认是编译为调试版的浏览器。

编译过程很久,根据机器性能决定,持续几个小时是正常的。如果意外中断,可再次执行 autoninja -C out\Default chrome 继续编译。

编译完成后,可打开 F:\_chromium\chromium\src\out\Default\chrome.exe 运行浏览器,显示为开发者内部版本:
在这里插入图片描述

7.4、编译正式版浏览器

7.4.1 、在 .gclient 文件中添加配置项 “checkout_pgo_profiles”: True:

.gclient 文件:

solutions = [{ "name"        : 'src',"url"         : 'https://chromium.googlesource.com/chromium/src.git',"deps_file"   : 'DEPS',"managed"     : False,"custom_deps" : {},"custom_vars": {"checkout_pgo_profiles": True,},},
]

不然报错:
在这里插入图片描述

7.4.2 更新依赖:

再项目根目录,没有进入源码src下。比如我的:F:\_chromium\chromium
在这里插入图片描述

然后执行 gclient runhooks 拉取依赖,

在这里插入图片描述

7.4.3 编译:

进入F:\_chromium\chromium\src 目录,执行:

gn args out\Release

弹出一个记事本文件编辑框,让我们输入编译参数,填写:

target_os="win"
target_cpu="x64"
is_component_build=false
is_debug=false
is_official_build=true

最后,执行 autoninja -C out\Release mini_installer 编译。

 autoninja -C out\Release mini_installer

这个需要几至几十个小时,不等,具体看电脑配置。

编译完成后,可在 F:\_chromium\chromium\src\out\Release\mini_installer.exe 得到安装程序。

在这里插入图片描述
在这里插入图片描述

双击既可安装软件:

在这里插入图片描述

参考:

主要参考地址:
win10 下载 Chromium 源码并编译(版本 103.0.5060.66)

Windows 10 下载及编译chromium源码

编译chromium最新源码

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

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

相关文章

webpack基础知识八:说说如何借助webpack来优化前端性能?

一、背景 随着前端的项目逐渐扩大,必然会带来的一个问题就是性能 尤其在大型复杂的项目中,前端业务可能因为一个小小的数据依赖,导致整个页面卡顿甚至奔溃 一般项目在完成后,会通过webpack进行打包,利用webpack对前…

【Linux】冯诺伊曼体系结构|操作系统概念理解

个人主页:🍝在肯德基吃麻辣烫 我的gitee:Linux仓库 个人专栏:Linux专栏 分享一句喜欢的话:热烈的火焰,冰封在最沉默的火山深处 文章目录 前言一、先谈硬件——冯诺依曼体系结构1.什么是冯诺依曼体系结构&am…

sql 关联了2张表的 update 语句(转)

转自:SQL Update:使用一个表的数据更新另一张表 、update 关联两个表 基本上 select 能支持的关联和子查询操作,都能在 update 语句中使用。 在 where 条件中使用子查询 update a set a.age 1 where id in (select device_id from b) 在 wher…

shell 脚本

一、使用PID过滤该进程的所有信息 #! /bin/bash # Function: 根据用户输入的PID,过滤出该PID所有的信息 read -p "请输入要查询的PID: " P nps -aux| awk $2~/^$P$/{print $11}|wc -l if [ $n -eq 0 ];thenecho "该PID不存在!&#xff0…

Flink开发环境准备: centos-jdk8

linux-jdk8 - Flink开发环境准备 一、基本介绍二、环境准备1.1 JDK环境1.2 开发工具1.3 Maven环境 三、flink下载安装配置3.1 Flink下载3.2 flink本地模式安装 - linux3.3 常用配置3.4 日志的查看和配置 四、单机 Standalone 的方式运行 Flink 一、基本介绍 Flink底层源码是基于…

CSS元素的显示模式

1、现在我想做成小米左侧边栏这样的效果,该怎么做呢? 2、小米商城触碰之后会显示出新的商品案例 3、一碰到之后会出现这个列表 4、这里涉及到了元素显示模式: 5、用人进行划分可以分为男人和女人,根据男人和女人的特性进行相应的…

Kill OOM

1、什么是OOM? OOM是每个程序员早晚都必须面对的问题,通常情况下,Java程序员所说的OOM是JVM OOM,即java.lang.OutOfMemoryError,是指Java程序在运行时申请内存超过JVM可用内存限制,导致JVM无法继续分配内存&#xff0…

【Spring框架】Spring事务

目录 Spring中事务的实现编程式事务声明式事务Transactional 作⽤范围Transactional 参数说明注意事项Transactional ⼯作原理 MySQL 事务隔离级别Spring 事务隔离级别事务传播机制 Spring中事务的实现 Spring中事务操作分为两类: 1.编程式事务 2.声明式事务 编程…

Element的Dialog+Form使用问题

在Element的Dialog中使用表单时&#xff0c;可能会出现以下问题 无法清空表单校验 <el-dialog title"新建资产" :visible.sync"addAssetsFormVisible" close"resetForm(addAssets)">resetForm (formName) {this.$refs[formName].resetFie…

vue3中的自定义指令用法

我们都知道vue2中自定义指令全局和局部是这样写的 局部&#xff1a; 全局&#xff1a; 可vue3写法发生改变&#xff0c;如下&#xff1a; 全局&#xff1a; 局部&#xff1a;

LeetCode643. 子数组最大平均数 I

题干 给你一个由 n 个元素组成的整数数组 nums 和一个整数 k 。 请你找出平均数最大且 长度为 k 的连续子数组&#xff0c;并输出该最大平均数。 任何误差小于 10^-5 的答案都将被视为正确答案。 示例1&#xff1a; 输入&#xff1a;nums [1,12,-5,-6,50,3], k 4 输出&am…

Linux文本处理工具和正则表达式

Linux文本处理工具和正则表达式 一.查看、截取和修改文本的工具 1.查看文本的工具 cat 最常用的文件查看命令&#xff1b;当不指明文件或者文件名为一杠’-时&#xff0c;读取标准输入。 cat [OPTION]... [FILE]... -A&#xff1a;显示所有控制符(tab键:^I;行结束符:$) -…