记录下: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 copy ninja.exe到 C:\Windows目录下:
      • 5.4 输入gclient 更新
    • 6、环境变量配置
    • 7、Windows 10 SDK 安装 10.0.20348.0 版本
  • 三、chromium源码拉取和编译
      • 1、 源码拉取:
        • 方法1:【不推荐】
        • 方法2:【源码clone】
        • 方法3:【gitee镜像】
      • 2、生成 .gclient 文件 和 同步第三方依赖
        • 2.1 生成 .gclient 文件
        • 2.2 同步第三方依赖 gclient sync
        • 2.3 可能出现报错:
      • 3 、编译调试版浏览器
      • 4、编译正式版浏览器
        • 4.1 、在 .gclient 文件中添加配置项 "checkout_pgo_profiles": True:
        • 4.2 更新依赖:
        • 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

window SDK下载地址:https://developer.microsoft.com/en-us/windows/downloads/sdk-archive/

本测试过程,主要参考: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

推荐我找到的一个旧版本:新的没有ninja.exe在里面。估计会报错
已经备份到我的云盘:
https://wwda.lanzouk.com/b00xawg4b
密码:6cnw

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 copy ninja.exe到 C:\Windows目录下:

copy ninja.exe到 C:\Windows目录下:
不然到后面编译时候出现报错:

在这里插入图片描述

问题解决:
跟进ninja.py,加入print日志,最终找到原因,缺少ninja.exe文件
在这里插入图片描述

在这里插入图片描述

然后把depot_tools 压缩包里面的ninja.exe复制到C:\Windows一份即可解决这个问题。
在这里插入图片描述

5.4 输入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\2019

			
WINDOWSSDKDIR=C:\Program Files (x86)\Windows Kits\10

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

在这里插入图片描述

7、Windows 10 SDK 安装 10.0.20348.0 版本

其实vs2019安装时候安装一个,但是后面项目使用时候,还需要这个版本10.0.20348.0 。不安装会出现问题,问题我忘记截图了。

官方注意提示:
在这里插入图片描述

window SDK下载地址:https://developer.microsoft.com/en-us/windows/downloads/sdk-archive/

直接搜索下载:
在这里插入图片描述

下载下来傻瓜式默认安装,其他啥也不改。弄完就行了

三、chromium源码拉取和编译

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 版本。

在这里插入图片描述

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

2.1 生成 .gclient 文件

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

2.2 同步第三方依赖 gclient sync

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

gclient sync

在这里插入图片描述

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源码目录。

如果没有出现忽略即可。

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

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 运行浏览器,显示为开发者内部版本:
在这里插入图片描述

4、编译正式版浏览器

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,
	},
  },
]

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

4.2 更新依赖:

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

然后执行 gclient runhooks 拉取依赖,

在这里插入图片描述

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最新源码

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

LeetCode每日一题——1331.数组序号转换

题目传送门 题目描述 给你一个整数数组 arr ,请你将数组中的每个元素替换为它们排序后的序号。 序号代表了一个元素有多大。序号编号的规则如下: 序号从 1 开始编号。一个元素越大,那么序号越大。如果两个元素相等,那么它们的…

上市公司-上下游和客户数据匹配(2001-2022年)

参考《中国工业经济》中陶锋(2023)的做法,对上市公司的上下游供应商和客户数据进行匹配。形成“上游供应商—目标企业—下游客户一年度数据集”。该是关于上市公司的上下游以及客户数据匹配的详细信息。 它呈现出由各种上游供应商和下游客户…

mysql高级三:sql性能优化+索引优化+慢查询日志

内容介绍 单表索引失效案例 0、思考题:如果把100万数据插入MYSQL ,如何提高插入效率 (1)关闭自动提交,只手动提交一次 (2)删除除主键索引外其他索引 (3)拼写mysql可以执…

ELK日志分析系统简介

ELK日志分析系统简介 ElasticsearchLogstashKibana主要功能Kibana日志处理步骤ELK的工作原理 日志服务器 提高安全性 集中存放日志 缺陷 ​ 对日志的分析困难 ELK日志分析系统 Elasticsearch 概述:提供了一个分布式多用户能力的全文搜索引擎 核心概念 接近实时 集群 节…

特性Attribute

本文只提及常用的特性,更多特性请查看官方文档。 AddComponentMenu - Unity 脚本 API 常用特性 AddComponentMenu 添加组件菜单 使用 AddComponentMenu 属性可在“Component”菜单中的任意位置放置脚本,而不仅是“Component > Scripts”菜单。 使用…

GODOT游戏引擎简介,包含与unity性能对比测试,以及选型建议

GODOT,是一个免费开源的3D引擎。本文以unity作对比,简述两者区别和选型建议。由于是很久以前写的ppt,技术原因视频和部分章节丢失了。建议当做业务参考。 GODOT目前为止遇到3个比较重大的基于,第一个是oprea的合作奖,…

嵌入式开发学习(STC51-13-温度传感器)

内容 通过DS18B20温度传感器,在数码管显示检测到的温度值; DS18B20介绍 简介 DS18B20是由DALLAS半导体公司推出的一种的“一线总线(单总线)”接口的温度传感器; 与传统的热敏电阻等测温元件相比,它是一…

【C++】map和set

目录 一、容器补充1.序列式容器与关联式容器2.键值对3.树形结构的关联式容器 二、set1.set的介绍2.set的使用3.multset的介绍4.multset的使用 三、map1.map的介绍2.map的使用3.multimap的介绍4.multimap的使用 一、容器补充 1.序列式容器与关联式容器 我们已经接触过STL中的部…

Mysql自动同步的详细设置步骤

以下步骤是真实的测试过程,将其记录下来,与大家共同学习。 一、环境说明: 1、主数据库: (1)操作系统:安装在虚拟机中的CentOS Linux release 7.4.1708 (Core) [rootlocalhost ~]# cat /etc/redh…

Docker学习(二十四)报错速查手册

目录 一、This error may indicate that the docker daemon is not running 报错docker login 报错截图:原因分析:解决方案: 二、Get "https://harbor.xxx.cn/v2/": EOF 报错docker login 报错截图:原因分析&#xff1a…

使用ubuntu-base制作根文件系统

1:ubuntu官网下载最小根文件系统: 放置到电脑的ubuntu中, Mkdir Ubuntu_rootfs Cd Ubuntu_rootfs Sudo tar –zxvf Ubuntu-bash-xxxxxx.tar.gz 2:电脑的ubuntu安装qemu搭建arm模拟系统 将/usr/bin/qemu-arm-static/(64位拷贝…

(黑客)自学笔记

一、自学网络安全学习的误区和陷阱 1.不要试图先成为一名程序员(以编程为基础的学习)再开始学习 行为:从编程开始掌握,前端后端、通信协议、什么都学。 缺点:花费时间太长、实际向安全过渡后可用到的关键知识并不多。…

Java基础面试题2

Java基础面试题 一、IO和多线程专题 1.介绍下进程和线程的关系 进程:一个独立的正在执行的程序 线程:一个进程的最基本的执行单位,执行路径 多进程:在操作系统中,同时运行多个程序 多进程的好处:可以充…

[webpack] 基本配置 (一)

文章目录 1.基本介绍2.功能介绍3.简单使用3.1 文件目录和内容3.2 下载依赖3.3 启动webpack 4.基本配置4.1 五大核心概念4.2 基本使用 1.基本介绍 Webpack 是一个静态资源打包工具。它会以一个或多个文件作为打包的入口, 将我们整个项目所有文件编译组合成一个或多个文件输出出去…

macbook怎么卸载软件?2023年最新全新解析macbook电脑怎样删除软件

macbook怎么卸载软件?2023年最新全新解析macbook电脑怎样删除软件。关于Mac笔记本如何卸载软件_Mac笔记本卸载软件的四种方法的知识大家了解吗?以下就是小编整理的关于Mac笔记本如何卸载软件_Mac笔记本卸载软件的四种方法的介绍,希望可以给到…

LeetCode 热题 100 JavaScript--206. 反转链表

/*** Definition for singly-linked list.* function ListNode(val, next) {* this.val (valundefined ? 0 : val)* this.next (nextundefined ? null : next)* }*/ /*** param {ListNode} head* return {ListNode}*/1、逐个断键,将后一个节点放到前面 …

网络可靠性之链路聚合

网络的可靠性 网络的可靠性指当设备或者链路出现单点或者多点故障时保证网络服务不间断的能力网络的可靠性是可以从单板、设备、链路多个层面实现。 链路聚合 以太网链路聚合: 通过将多个物理接口捆绑成为一个逻辑接口,可以再不进行硬件升级的条件下&a…

neo4j入门实例介绍

使用Cypher查询语言创建了一个图数据库,其中包含了电影《The Matrix》和演员Keanu Reeves、Carrie-Anne Moss、Laurence Fishburne、Hugo Weaving以及导演Lilly Wachowski和Lana Wachowski之间的关系。 CREATE (TheMatrix:Movie {title:The Matrix, released:1999,…

LeetCode-Java(06)

24. 两两交换链表中的节点 非递归解法 class Solution {public ListNode swapPairs(ListNode head) {ListNode pre new ListNode(0);pre.next head;ListNode temp pre;while(temp.next ! null && temp.next.next ! null) {ListNode start temp.next;ListNode end …

Android平台GB28181设备接入端如何降低资源占用和性能消耗

背景 我们在做GB28181设备接入模块的时候,考虑到好多设备性能一般,我们一般的设计思路是,先注册设备到平台侧,平台侧发calalog过来,获取设备信息,然后,设备侧和国标平台侧维持心跳,…