Windows 下载编译chromium源码

news2024/12/25 19:16:59

前言

本文介绍如何下载并编译chromium源码。相关前置条件可参考官方文档。

环境 :

  • Windows 11
  • VS 2022

环境设置

打开cmd,设置代理

set http_proxy=http://127.0.0.1:7890 & set https_proxy=http://127.0.0.1:7890

注意:使用cmd命令行,不要使用powershell。

image.png

下载depot_tools

下载 depot_tools bundle 文件并解压 (eg: C:\src\depot_tools).

这里我放在D:\Code\chromium\depot_tools路径下。

然后设置环境变量

set path=D:\Code\chromium\depot_tools;%path%

下载chromium代码

设置一个名为 vs2022_install 的环境变量,用于指定vs2022 的安装路径

set vs2022_install=D:\Program Files\Microsoft Visual Studio\2022\Community

设置使用本地 VS 编译

set DEPOT_TOOLS_WIN_TOOLCHAIN=0

然后运行:

gclient

在第一次运行时,gclient 将安装使用代码所需的所有 Windows 特定位,包括 msysgit 和 python。

然后再执行fetch --no-history chromium下载chromium代码

fetch --no-history chromium

由于使用了--no-history通常很快就下载完成。

Updating depot_tools...
Downloading CIPD client for windows-amd64 from https://chrome-infra-packages.appspot.com/client?platform=windows-amd64&version=git_revision:6e9be28a4c4e3a804f400dc6c2ed08b866f0a38b...
Running: 'C:\Users\LMR\.vpython-root\store\python_venv-57g7dfur34kej3luifcgqdfurg\contents\Scripts\python3.exe' 'D:\Code\chromium\depot_tools\gclient.py' root
WARNING: Your metrics.cfg file was invalid or nonexistent. A new one will be created.
Running: 'C:\Users\LMR\.vpython-root\store\python_venv-57g7dfur34kej3luifcgqdfurg\contents\Scripts\python3.exe' 'D:\Code\chromium\depot_tools\gclient.py' config --spec 'solutions = [
  {
    "name": "src",
    "url": "https://chromium.googlesource.com/chromium/src.git",
    "managed": False,
    "custom_deps": {},
    "custom_vars": {},
  },
]

但还需要执行gclient sync下载完整代码:

gclient sync

image.png

等待…然后就可以看到下载完成的提示了。

image.png

编译

下载完成后,进入src目录,设置构建目录

cd src
gn gen out/Default

image.png

开始编译

autoninja -C out\Default chrome

image.png

然后等待编译完成即可,这期间CPU占用会很高,不建议再执行其他操作。

编译过程中可能有gbk编码警告,可以忽略。

image.png

编译完成后,就可在D:\Code\chromium\src\out\Default路径下找到chrome.exe了,点击运行:

image.png

这下说明已经编译完成并能成功执行chrome.exe

错误解决

No downloadable toolchain found. In order to use your locally installed version of Visual Studio to build Chrome please set DEPOT_TOOLS_WIN_TOOLCHAIN=0.
For details search for DEPOT_TOOLS_WIN_TOOLCHAIN in the instructions at https://chromium.googlesource.com/chromium/src/+/HEAD/docs/windows_build_instructions.md

image.png

错误提示很明显,原因就是因为没有设置set DEPOT_TOOLS_WIN_TOOLCHAIN=0

一直下载失败

我最初使用的Windows Terminal下载代码,结果总是下载失败,然后换成x64 Native Tools Command Prompt for VS 2022命令行工具下载就成功了。所以当下载失败时,除了网络问题,可以切换终端尝试。Chromium文档也说了,如果从 非命令行(CMD) 中(例如,cygwin、PowerShell)运行 gclient,它看起来可能运行正常,但 msysgit、python 以及其他工具却无法正确安装。

D:\Code\chromium>gn gen out/Default
ERROR Can't find source root.
I could not find a ".gn" file in the current directory or any parent,
and the --root command-line argument was not specified.

这个错误是因为没有进入src目录下,导致没有找到gn文件

image.png 删除out\Default\obj\components\device_signals\core\browser下的所有文件,然后重新生成工程并编译即可:

gn gen out/Default
autoninja -C out\Default chrome

总结

下载chromium源代码,除了本身硬件有要求外,对于网络环境,尤其是国内的网络有要求,除此之外注意使用cmd命令行下载,基本就没有什么问题了。

Chromium Docs - Checking out and Building Chromium for Windows (googlesource.com)

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

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

相关文章

设计链表复习

设计链表 class ListNode {int val;ListNode next;public ListNode() {}public ListNode(int val) {this.val val;}public ListNode(int val, ListNode next) {this.val val;this.next next;}}class MyLinkedList {//size存储链表元素的个数int size;//虚拟头节点ListNode…

十四天学会C++之第七天:STL(标准模板库)

1. STL容器 什么是STL容器,为什么使用它们。向量(vector):使用向量存储数据。列表(list):使用列表实现双向链表。映射(map):使用映射实现键值对存储。 什么…

Swin Transformer V2 Scaling Up Capacity and Resolution(CVPR2022)

文章目录 AbstractIntroduction不稳定性问题下游任务需要的高分辨率问题解决内存问题- Related WorksLanguage networks and scaling upVision networks and scaling upTransferring across window / kernel resolution Swin Transformer V2Swin Transformer简介Scaling Up Mod…

使用TensorRT-LLM进行高性能推理

LLM的火爆之后,英伟达(NVIDIA)也发布了其相关的推理加速引擎TensorRT-LLM。TensorRT是nvidia家的一款高性能深度学习推理SDK。此SDK包含深度学习推理优化器和运行环境,可为深度学习推理应用提供低延迟和高吞吐量。而TensorRT-LLM是在TensorRT基础上针对大模型进一步…

LeetCode2409——统计共同度过的日子数

博主的解法过于冗长,是一直对着不同的案例debug修改出来的,不建议学习。虽然提交成功了,但是自己最后都不知道写的是啥了哈哈哈。 package keepcoding.leetcode.leetcode2409; /*Alice 和 Bob 计划分别去罗马开会。给你四个字符串 arriveA…

【每周一测】Java阶段二第四周学习

目录 1、request中的getParameter(String name)方法的功能是 2、request中的getParameter(String name)方法的功能是 3、spring创建bean对象没有以下哪个方式 4、spring依赖注入中没有以下哪个方式 5、RequestParam、RequestBody、PathVariable的应用场景及区别 6、Cooki…

第三章 网络主机扫描

本章是进入渗透测试工作流程的第一步。无论你是高级还是新手,本章都将帮助你成功地进行网络扫描。在开始扫描网络之前,我们将介绍您需要了解的基础知识。之后,我们将深入研究如何扫描网络目标。本章涵盖以下内容: 一、网络基础 二、识别活主…

BUUCTF 大白 1

BUUCTF:https://buuoj.cn/challenges 题目描述: 看不到图? 是不是屏幕太小了 。 密文: 下载附件后解压,发现一张名为dabai.png的图片。 (似乎因为文件被修改过,原图片无法放在这里,这张图片是…

Linux:firewalld防火墙-基础使用(2)

上一章 Linux:firewalld防火墙-介绍(1)-CSDN博客https://blog.csdn.net/w14768855/article/details/133960695?spm1001.2014.3001.5501 我使用的系统为centos7 firewalld启动停止等操作 systemctl start firewalld 开启防火墙 systemct…

怎么去别人的github工程下载

1、网络 确保网络能够顺利访问github,有的地方的公共网络不能访问github,我之前开过科学上网的会员,发现没必要特意开去访问它。可以直接开手机热点,一般是可以顺利访问的。 2、下载 以我的github开源笔记qq-hh/C_review (gith…

砖家预测:腾讯云双11服务器优惠价格表(新鲜出炉)

2023腾讯云双十一服务器优惠价格表多少钱一年?轻量服务器2核2G3M、2核2G4M、2核4G5M、4核8G12M、8核16G18M、16核32G28M和云服务器CVM标准型S5实例优惠价格,腾讯云百科今年双11服务器价格会在当前的价格基础上享受个9折优惠,可领券 https://c…

网站技术查看

当打开一个网页感觉很好奇,他使用了什么框架和什么技术? 常用的网页技术分析网站。 1. w3techs Check web technologies used by a website - Site InfoW3Techs identifies which web technologies such as CMS, programming language, web server an…

Python中的内存管理:深入分析垃圾回收机制

python中有一个名为refchian的环状双向链表,python运行时创建的所有对象都会添加到refchain中。在refchain中的对象PyObject里都有一个ob_refcnt用来保存当前对象的引用计数器,就是该对象被引用的次数,当对象有新引用时ob_refcnt就会增加&…

最简单修改nacos的修改权重修改上线下线报错

前言 我在docker中部署了一个单体的nacos服务,过了一段时间,由于我导入了另外一个nacos的服务配置导致服务注册没问题,但是服务的修改权重和修改服务的上线下线会报错.于是就有了这篇文章,这篇文章主要是解决上面说的问题 正文 1.报错信息展示(这里我已经修复过了已经展示不了了…

【iOS】简单的网络请求

应iOS小组要求,仿写知乎日报需要实现网络请求并解析JSON格式数据,这篇文章仅对基本的网络请求和iOS中的JSON解析作以记录,还涉及到RunLoop的一点小插曲,具体请求过程和原理以后会详细学习!🙏 基本网络流程简…

42915-2023 铜精矿及主要含铜物料鉴别规范

1 范围 本文件规定了铜精矿及主要含铜物料的鉴别特征、鉴别流程、鉴别实施及鉴别报告编写。 本文件适用于进口铜精矿与主要含铜物料的鉴别,主要含铜物料包括冰铜、铜火法冶炼渣、铜火法 冶炼烟尘、铜阳极泥、铜渣精矿等铜火法冶炼工艺产生的物料。 2 规范性引用…

前端Vue框架系列—— 学习笔记总结Day02

❤ 作者主页:欢迎来到我的技术博客😎 ❀ 个人介绍:大家好,本人热衷于Java后端开发,欢迎来交流学习哦!( ̄▽ ̄)~* 🍊 如果文章对您有帮助,记得关注、点赞、收藏、…

VMwarePlayer安装Ubuntu,切换中文并安装中文输入法

1.下载和安装 虚拟机使用的免费版官网链接:VMwarePlayer Ubuntu镜像下载官网链接:Ubuntu桌面版 自己学习使用,不需要考虑迁移之类的。选择单个磁盘IO性能会更高 安装过程中如果出现如下报错,则用系统管理员身份运行 右击VMwa…

造车先做三蹦子220101--机器学习字符(字母、和数字识别)的“小白鼠”与“果蝇”

“0”数字字符零 的图片(16*16点阵): import torch import torch.nn as nn import torch.optim as optim from PIL import Image, ImageDraw, ImageFont from torchvision import transforms import matplotlib.pyplot as pltTimes20001000# 参数设置 font_path &q…

嵌入式实时操作系统的设计与开发(内存资源池存储管理)

内存资源池存储管理 内存资源池存储管理属于固定大小内存管理系统,内存池中内存块的分配和回收是基于第一级内存管理系统的,因为内存池中内存块是由第一级内存管理的算法所确定的。 内存池存储管理系统主要用于操作系统的一些常用结构的内存管理。例如…