【项目实战】Chrome 浏览器编译

news/2024/7/24 1:13:17 标签: 流媒体

【项目实战】Chrome 浏览器编译

【1】depot_tools 下载与配置

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

配置 depot_tools 解压路径到 path 环境变量中,确保在首位

配置环境变量 DEPOT_TOOLS_WIN_TOOLCHAIN 其值为 0,DEPOT_TOOLS_UPDATE 其值为 0

【2】window 编译环境构建

Visual Studio 2019 安装与配置

安装 Visual Studio 2019 时,勾选 使用 C++ 的桌面开发,勾选 C++ ATL 生成工具,其他项默认即可

配置环境变量 vs2019_install,其值为 Visual Studio 2019 安装路径,如 D:\Program Files (x86)\Microsoft Visual Studio\2019\Professional

Windows 10 SDK 安装与配置

SDK 下载地址,https://developer.microsoft.com/zh-cn/windows/downloads/sdk-archive/

安装时确保勾选 “Debugging Tools For Windows” 其他的选项默认

配置环境变量 WINDOWSSDKDIR 其值为 SDK 安装路径,如 D:\Windows Kits\10

【3】chrome 源码获取与编译

访问如下网址可以获取对应版本的 chrome 源码

https://chromium.googlesource.com/chromium/src.git/+/refs/tags/103.0.5060.66

访问如下网址可以获取对应版本的 chrome 源码编译指南

https://chromium.googlesource.com/chromium/src.git/+/refs/tags/103.0.5060.66/docs/windows_build_instructions.md

  • 获取 chrome 源码
github 仓库
git clone --depth 100 -b 103.0.5060.66 https://chromium.googlesource.com/chromium/src.git src

gitee 仓库
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 ..
  • 同步第三方库
生成 .gclient 文件
gclient config --unmanaged https://chromium.googlesource.com/chromium/src.git

gclient sync
等同于
gclient sync --nohooks
gclient runhooks
  • 编译 chrome
cd src
配置参数
gn args out\Default --ide=vs2019

自动打开 out\Default\args.gn 并编辑文件为如下内容

is_component_build = true
is_debug = false
symbol_level = 0
enable_nacl = false
#ffmpeg setting Support H264
ffmpeg_branding = "Chrome"
proprietary_codecs = true

生成方案
gn gen out\Default --ide=vs2019
编译
autoninja -C out\Default chrome

问题与解决方案

【1】UnicodeDecodeError: 'gbk' codec can't decode byte 0xaf in position 249: illegal multibyte sequence

问题 : 
UnicodeDecodeError: 'gbk' codec can't decode byte 0xaf 
in position 249: illegal multibyte sequence

解决方案 :
在 gn args out/Default --ide=vs2019 生成 args.gen 配置文件时内部不要包含中文字符

要点说明

chrome 的编译需要确保网络环境稳定,可以正常访问 google 对应的仓库,建议可以在云服务器上进行构建,然后再将编译结果打包下载下来。

参考致谢

本博客为博主的学习实践总结,并参考了众多博主的博文,在此表示感谢,博主若有不足之处,请批评指正。

【1】win10 下载 Chromium 源码并编译(版本 103.0.5060.66)

【2】基于VS2019的Chrome(2021年版本)浏览器编译实践

【3】Chrome源码chromium下载编译详细步骤

【4】github 本地 fatal: couldn‘t find remote ref master错误解决方案


http://www.niftyadmin.cn/n/311713.html

相关文章

SQL全方位攻略:4. 标准SQL和SQL“方言”

系列文章目录 SQL全方位攻略:1.数据库介绍 SQL全方位攻略:2.SQL介绍 SQL全方位攻略:3.SQL标准 SQL全方位攻略:4. 标准SQL和SQL“方言” 文章目录 系列文章目录4. 标准SQL和SQL“方言”标准SQL和SQL“方言”的介绍常见的SQL“方言…

从 seccomp filter 学习内核 bpf 自定义 hook 点的设计实现

从 seccomp filter 学习内核 bpf 自定义 hook 点的设计 目录 从 seccomp filter 学习内核 bpf 自定义 hook 点的设计基线信息bpf hook 点如何注册到已有代码中?bpf 代码如何动态 attach 到执行入口中?bpf 代码的校验与翻译在哪里做?校验有哪些…

Magic-API的部署

目录 概述简介特性 搭建创建元数据表idea新建spring-boot项目pom.xmlapplication.properties打包上传MagicAPI-0.0.1-SNAPSHOT.jar开启服务访问 magic语法 概述 简介 magic-api是一个基于Java的接口快速开发框架,编写接口将通过magic-api提供的UI界面完成&#xf…

浅谈一下接口工具(jmeter、postman、swagger等)

一、接口都有哪些类型? 接口一般分为两种:1.程序内部的接口 2.系统对外的接口 系统对外的接口:比如你要从别的网站或服务器上获取资源或信息,别人肯定不会把 数据库共享给你,他只能给你提供一个他们写好的方法来获取…

6. N 字形变换

将一个给定字符串 s 根据给定的行数 numRows ,以从上往下、从左到右进行 Z 字形排列。 比如输入字符串为 "PAYPALISHIRING" 行数为 3 时,排列如下: P A H NA P L S I I GY I R 之后,你的输出需要从左往右逐…

Java【网络编程1】什么是 TCP/IP 五层模型? 数据传输的封装和分用?

文章目录 前言一、网络协议分层二、数据的网络传输1, 封装2, 分用3, 实际情况 总结 前言 📕各位读者好, 我是小陈, 这是我的个人主页 📗小陈还在持续努力学习编程, 努力通过博客输出所学知识 📘如果本篇对你有帮助, 烦请点赞关注支持一波, 感…

RobotStudio教程:ABB机器人TCP路径轨迹跟踪功能介绍与使用方法

目录 功能介绍 机器人工作站创建 TCP路径轨迹全局跟踪 基于事件管理器的TCP路径轨迹局部跟踪 基于Smart组件的TCP路径轨迹局部跟踪 仿真运行 功能介绍 干涉检查是虚拟仿真工作中非常重要的一个步骤,尤其是机器人工具与工件、工装夹具之间的碰撞干涉&#xff…

如何将Xerosploit移植到MacOS

0x01 前言 笔者很喜欢Xerosploit这个工具 奈何其并不支持MacOS 也就意味着日常使用都需要到虚拟机里面去运行 很是麻烦 仔细看了一下Xero的代码 主要集成bettercap和nmap这两个项目(都支持MacOS)其代码并不复杂 就算自己基于MacOS重写一个也不是什么难事…