Chromium Win10 开发环境搭建

2023-11-10

记录chromium 开发搭建过程,系统、软件环境不同,所遇问题可能不同,但主体关键相似,仅供参考。

VS 安装

安装vs2019

在这里插入图片描述
the version 10.0.19041 or higher Windows 10 SDK installed

注意点:
确保windows sdk 安装成功我vs完成安装后以为成功,后面查问题才发现sdk有异常,但开始没注意,在编编译出现问题类似这样:
Exception: dbghelp.dll not found in “C:\Program Files (x86)\Windows Kits\10\Debuggers\x64\dbghelp.dll”
还有就是关于vs_toolchain.py的报错。

检查时可以再次打开vs installer,如果有出错,会提示。然后选择“修改”,增加一些其它sdk版本的选择,再继续安装。

Debugging Tools For Windows

控制面板 → 程序 → 程序和功能 → 选择“Windows Software Development Kit” → 更改 → 更改 → 勾选 “Debugging Tools For Windows” → 更改

chromium 安装

官方:
https://github.com/chromium/chromium/blob/master/docs/get_the_code.md
https://chromium.googlesource.com/chromium/src/+/master/docs/windows_build_instructions.md

本地化安装

另一种网友推荐
https://blog.csdn.net/business122/article/details/80512218
先下源码,再放在本地安装
https://chromium.googlesource.com/chromium/src.git/

先确认最新稳定版本,再复制链接下载。
后面证明此路不通。

在线安装

主要参考
https://blog.csdn.net/tianyun3350/article/details/108361791

代理

香港代理轻量级应用服务器,安装ss。
PC开启ss Client。

git config --global https.proxy http://127.0.0.1:5003
git config --global http.proxy http://127.0.0.1:5003
set http_proxy=http://127.0.0.1:5003
set https_proxy=http://127.0.0.1:5003

技巧

由于要长时间下载,为了避免电脑锁屏等系统原因导致中断,要使得当前系统操作处于活动状态,尝试了模拟按键的办法。(我自己使用中,多次长时间放着让其自己下载,结果每过一段时间后就下不动,起初以为带宽不好,后面怀疑到这个情况下,试了此法果然有效!)
参考:https://blog.csdn.net/a53hupper/article/details/106671045

filename.ps1 文件

$shell = New-Object -com "Wscript.Shell"
while($True){
    Start-Sleep -Seconds 60
    $shell.sendkeys(" ")
}

为绕过系统安全检查的执行策略,通过命令行cmd进入ps1文件的存储目录,执行以下命令:
powershell.exe -ExecutionPolicy Bypass -File filename.ps1

安装git和python

本人是先下载了这两个。
网上搜索官方安装步骤即可。

下载depopt_tools

  • 创建好存储目录,如D:\chromium\

  • 下载
    git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git

  • 环境变量
    D:\chromium\depot_tools 添加到 系统环境变量的 Path 最开始,确保在python前。

打开cmd,开启代理

环境变量

DEPOT_TOOLS_WIN_TOOLCHAIN GYP_MSVS_VERSION GYP_MSVS_OVERRIDE_PATH vs2019_install DEPOT_TOOLS_UPDATE
0 2019 C:\Program Files (x86)\Microsoft Visual Studio\2019\Community C:\Program Files (x86)\Microsoft Visual Studio\2019\Community 0

看参考其它人的链接,有设置WINDOWSSDKDIR环境变量,查了是因为安装时与默认的路径不同,如果是默认安装在系统的Program Files 下是不用的。

下载 chromium

首次
fetch --no-history chromium
如果有断开,后面用这个。
gclient sync

编译

  • 生成编译目录
    进入到Chromium源码项目的src目录下,右键点击 git bash。输入命令: gn gen --ide=vs out\Default

  • 利用 ninja:输入命令: ninja -C out/Default chrome

问题1

在这里插入图片描述
参考:
https://groups.google.com/a/chromium.org/forum/embed/#!topic/chromium-dev/6xj25ebdXOY

看似是文件拷贝的问题,于是先将Test.js和devtools_compatibility.js从原目录手动拷贝过来。原目录 :
D:\chromium\chromium\src\third_party\devtools-frontend\src\front_end
目标目录:
D:\chromium\chromium\src\out\Default\gen\third_party\devtools-frontend\src\front_end

继续执行时还出错
在这里插入图片描述
位置不同

调试发现有调用 node.exe
在这里插入图片描述
然而手动调用 node.exe是可以的。
在这里插入图片描述
检查目录发现chromium自带的node目录下并没有可执行的node.exe文件(而我已经以前是有安装nodejs的,如果有人也遇到和我一样的问题,也可以参考我下面的修改办法)。所以改代码,让cmd直接调用node.exe(下面有代码截图)

但后面又有别的错误

通过单独执行发现,可能还是node的位置问题,尽管我创建了一个快捷方式到chromium的目录下。

通过分析出错的代码位置src\third_party\devtools-frontend\src\third_party\typescript\ts_library.py,发现一个变量指向node.exe,而此变量是由下在方式获取的,
在这里插入图片描述
接着通过everything找devtools_paths
在这里插入图片描述
代码如下:
在这里插入图片描述
原来还是调用 了src\third_party\node\node.py中的接口,之前改了调用时,看来还是改函数接口实现吧。
在这里插入图片描述
以下截图:1为问题,2为调试时参数输出,3为修改后的结果。
在这里插入图片描述
通过上图第3个框测试可以。所以接着编译。

参考

先收集参考!

资讯

https://www.solidot.org/search?tid=155

开发

打造专属的Chromium for Android
https://www.jianshu.com/p/08f0701e86de

启航篇
https://blog.csdn.net/yangdeli888/article/details/51811169

Chromium网页加载过程简要介绍和学习计划
https://blog.csdn.net/Luoshengyang/article/details/50414848

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Chromium Win10 开发环境搭建 的相关文章

  • 以文化中立的方式将字符串拆分为单词

    我提出了下面的方法 旨在将可变长度的文本拆分为单词数组 以进行进一步的全文索引处理 删除停止词 然后进行词干分析 结果似乎不错 但我想听听关于这种实现对于不同语言的文本的可靠性的意见 您会建议使用正则表达式来代替吗 请注意 我选择不使用 S
  • 动态加载程序集的应用程序配置

    我正在尝试将模块动态加载到我的应用程序中 但我想为每个模块指定单独的 app config 文件 假设我的主应用程序有以下 app config 设置
  • 用于检查类是否具有运算符/成员的 C++ 类型特征[重复]

    这个问题在这里已经有答案了 可能的重复 是否可以编写一个 C 模板来检查函数是否存在 https stackoverflow com questions 257288 is it possible to write a c template
  • 从Web API同步调用外部api

    我需要从我的 Web API 2 控制器调用外部 api 类似于此处的要求 使用 HttpClient 从 Web API 操作调用外部 HTTP 服务 https stackoverflow com questions 13222998
  • 用于登录 .NET 的堆栈跟踪

    我编写了一个 logger exceptionfactory 模块 它使用 System Diagnostics StackTrace 从调用方法及其声明类型中获取属性 但我注意到 如果我在 Visual Studio 之外以发布模式运行代
  • 堆栈溢出:堆栈空间中重复的临时分配?

    struct MemBlock char mem 1024 MemBlock operator const MemBlock b const return MemBlock global void foo int step 0 if ste
  • 带动态元素的 WPF 启动屏幕。如何?

    我是 WPF 新手 我需要一些帮助 我有一个加载缓慢的 WPF 应用程序 因此我显示启动屏幕作为权宜之计 但是 我希望能够在每次运行时更改屏幕 并在文本区域中显示不同的引言 这是一个生产力应用程序 所以我将使用非愚蠢但激励性的引言 当然 如
  • 将多个表映射到实体框架中的单个实体类

    我正在开发一个旧数据库 该数据库有 2 个具有 1 1 关系的表 目前 我为每个定义的表定义了一种类型 1Test 1Result 我想将这些特定的表合并到一个类中 当前的类型如下所示 public class Result public
  • 重载<<的返回值

    include
  • 使用 Bearer Token 访问 IdentityServer4 上受保护的 API

    我试图寻找此问题的解决方案 但尚未找到正确的搜索文本 我的问题是 如何配置我的 IdentityServer 以便它也可以接受 授权带有 BearerTokens 的 Api 请求 我已经配置并运行了 IdentityServer4 我还在
  • SolrNet连接说明

    为什么 SolrNet 连接的容器保持静态 这是一个非常大的错误 因为当我们在应用程序中向应用程序发送异步请求时 SolrNet 会表现异常 在 SolrNet 中如何避免这个问题 class P static void M string
  • Windows C++ 中的键盘钩子还是什么?

    我希望构建自己的应用程序 它可以将键盘命令 消息 发送到 Windows 操作系统 例如 当我按下组合键 ctrl shift n 时 我希望启动 notepad exe 我怎样才能做到这一点 您对所使用的概念有什么建议吗 我读过 何时使用
  • 这些作业之间是否存在顺序点?

    以下代码中的两个赋值之间是否存在序列点 f f x 1 1 x 2 不 没有 在这种情况下 标准确实是含糊不清的 如果你想确认这一点 gcc 有这个非常酷的选项 Wsequence point在这种情况下 它会警告您该操作可能未定义
  • 使用 x509 证书签署 json 文档或字符串

    如何使用 x509 证书签署 json 文档或字符串 public static void fund string filePath C Users VIKAS Desktop Data xml Read the file XmlDocum
  • 覆盖子类中的字段或属性

    我有一个抽象基类 我想声明一个字段或属性 该字段或属性在从该父类继承的每个类中具有不同的值 我想在基类中定义它 以便我可以在基类方法中引用它 例如覆盖 ToString 来表示 此对象的类型为 property field 我有三种方法可以
  • cmake 将标头包含到每个源文件中

    其实我有一个简单的问题 但找不到答案 也许你可以给我指一个副本 所以 问题是 是否可以告诉 cmake 指示编译器在每个源文件的开头自动包含一些头文件 这样就不需要放置 include foo h 了 谢谢 CMake 没有针对此特定用例的
  • 基于 OpenCV 边缘的物体检测 C++

    我有一个应用程序 我必须检测场景中某些项目的存在 这些项目可以旋转并稍微缩放 更大或更小 我尝试过使用关键点检测器 但它们不够快且不够准确 因此 我决定首先使用 Canny 或更快的边缘检测算法 检测模板和搜索区域中的边缘 然后匹配边缘以查
  • 混合 ExecutionContext.SuppressFlow 和任务时 AsyncLocal.Value 出现意外值

    在应用程序中 由于 AsyncLocal 的错误 意外值 我遇到了奇怪的行为 尽管我抑制了执行上下文的流程 但 AsyncLocal Value 属性有时不会在新生成的任务的执行范围内重置 下面我创建了一个最小的可重现示例来演示该问题 pr
  • Windows 和 Linux 上的线程

    我在互联网上看到过在 Windows 上使用 C 制作多线程应用程序的教程 以及在 Linux 上执行相同操作的其他教程 但不能同时用于两者 是否存在即使在 Linux 或 Windows 上编译也能工作的函数 您需要使用一个包含两者的实现
  • C++ 标准是否指定了编译器的 STL 实现细节?

    在写答案时this https stackoverflow com questions 30909296 can you put a pimpl class inside a vector我遇到了一个有趣的情况 这个问题演示了这样一种情况

随机推荐

  • R语言优雅地修改列名称

    R语言优雅地修改列名称 在R语言中 修改数据框 DataFrame 或矩阵 Matrix 的列名称是一项常见的任务 通过优雅地修改列名称 可以提高代码的可读性和可维护性 在本文中 我将介绍几种优雅的方法来修改列名称 并提供相应的源代码示例
  • GPU计算

    文章目录 GPU计算 1 GPU和CPU的区别 2 GPU的主要参数解读 3 如何在pytorch中使用GPU 4 市面上主流GPU的选择 GPU计算 1 GPU和CPU的区别 设计目标不同 CPU基于低延时 GPU基于高吞吐 CPU 处理
  • 95-34-025-Context-AbstractChannelHandlerContext

    文章目录 1 概述 2 继承体系 3 类签名 4 关键字段 5 构造方法 6 ChannelRead事件 6 1 findContextInbound 7 invokeHandler 1 概述 2 继承体系
  • tensorrt转换模型进行了哪些操作

    对于网络layer graph进行的操作 消除输出未使用的层 消除相当于无操作的操作 卷积 偏置和ReLU运算的融合 具有足够相似参数和相同源张量的运算聚合 例如 GoogleNet v5的初始模块中的1x1卷积 inception结构中同
  • DW9718AF.c

    Copyright C 2015 MediaTek Inc This program is free software you can redistribute it and or modify it under the terms of
  • ERP系统总体解决方案 附下载地址

    企业资源计划即 ERP Enterprise Resource Planning 由美国 Gartner Group 公司于1990年提出 企业资源计划是 MRP II 企业制造资源计划 下一代的制造业系统和资源计划软件 除了MRP II
  • 大数据学习框架及指南

    Hadoop生态圈 一 采集 数据从哪里来 主要包括flume等 一 存储 海量的数据怎样有效的存储 主要包括hdfs Kafka 二 计算 海量的数据怎样快速计算 主要包括MapReduce Spark storm等 三 查询 海量数据怎
  • 数据结构与算法笔记2(线性表)

    1 线性表 1 1线性表是一种逻辑关系 见绪论 1 2定义 是具有相同类型的n个元素的有限序列 其中n为表长 n 0时为空表 关键词 相同类型 一般处理的数据元素都是相同类型 比如一个人那么都是人 而不会把人与车放在一起 关键词 有限序列
  • Java泛型知识点整理

    Java泛型知识点整理 Java泛型 泛型提供了编译时类型安全检测机制 该机制允许程序员在编译时检测到非法的类型 泛型的本质是参数化类型 也就是说所操作的数据类型被指定为一个参数 比如我们要写一个排序方法 能够对整型数组 字符串数组甚至其他
  • ConcurrentHashMap为什么是线程安全的?

    1 ConcurrentHashMap的原理和结构 我们都知道Hash表的结构是数组加链表 就是一个数组中 每一个元素都是一个链表 有时候也把会形象的把数组中的每个元素称为一个 桶 在插入元素的时候 首先通过对传入的键 key 进行一个哈希
  • MapReduce的Job提交流程

    编写一个简单的WordCount程序 Mapper import org apache hadoop io LongWritable import org apache hadoop io Text import org apache ha
  • Tip of the Week #49: Argument-Dependent Lookup

    Tip of the Week 49 Argument Dependent Lookup Originally posted as totw 49 on 2013 07 14 whatever disappearing trail of i
  • 深度学习技术在自动驾驶中的应用与挑战

    导读 深度学习技术经过近几年井喷式的发展 在很多领域都得到了广泛的应用 在自动驾驶系统中 深度学习技术也起到了至关重要的作用 同时也面临着非常多的挑战 我们一直在探索 在一个安全 稳定的自动驾驶产品中 深度学习技术应该有着怎样的作用边界 又
  • Unable to load configuration的解决方法

    最近在学Struts2 5 5 因为喜欢用最新的 并且之前没有学习过的经验 就按照一个网上的博客跟着做一个小实例 里面说直接用 Struts2 5 5中自带例子的struts xml文件 结果我就用了 然后写了一个小程序就一直报 Unabl
  • Java中的对象是什么?

    Java是一种面向对象的编程语言 它将世界视为具有属性和行为的对象的集合 Java的面向对象版本非常简单 它是该语言几乎所有内容的基础 因为它对Java非常重要 所以我将对幕后内容进行一些解释 以帮助任何不熟悉Java的人 遗产 通常 所有
  • 奇安信笔试编程题完整解析附代码

    昨天晚上奇安信笔试 两道编程题做的都不好 有紧张的元素 也有自己实力不够硬的问题 总之把两道编程题又做了一遍 思路屡清楚 下次继续努力 其实两道题非常非常简单 如果放在高中数学 基本就是送分题了 但是最近疫情期间 在家都躺退化了 算了 开搞
  • Android性能优化大法——内存优化

    作者 layz4android 内存 是Android应用的生命线 一旦在内存上出现问题 轻者内存泄漏 重者直接crash 因此一个应用保持健壮 内存这块的工作是持久战 而且从写代码这块就需要注意合理性 所以想要了解内存优化如何去做 要先从
  • jqury ajax 提交from conflict,JQuery中使用ajax提交表单遇到的问题

    今天在做维护时 遇到一段JQuery旧代码 看得很纠结 大致结构如下 html代码 javascript代码 mySubmit click function doSubmit 提交 function doSubmit myForm subm
  • 探讨STOS指令

    转载在http hi baidu com darks00n blog item 4c019ec42ad0cdcad00060b1 html 下面是一段win32 console程序 Debug版 的反汇编代码 很程式化的东西 本文不讨论这段
  • Chromium Win10 开发环境搭建

    记录chromium 开发搭建过程 系统 软件环境不同 所遇问题可能不同 但主体关键相似 仅供参考 VS 安装 安装vs2019 the version 10 0 19041 or higher Windows 10 SDK install