chromium的下载和编译(流程详解)
准备工作: 1、翻墙的梯子(必须,因为需要访问国外服务器进行数据下载和同步)
2、安装VS2019,且请务必把安装路径设置为C盘(最好默认安装),这样可以省掉很多不必要的环境变量配置。(一开始我VS安装在D盘,走了很多弯路也没成功,win10sdk可以放D 盘)
3、安装git
4、安装win10sdk的版本10.0.20348 .0(具体需要哪个版本主要由后面的../src/bulid/toolchain/win/setup_toolchain.py中的版本要求决定)
正式开始:
1、创建一个文件夹并进到文件夹下:D:\work
2、下载depot-tools.zip包(下载chromium源码的一个工具, 里面自带有python工具, 如果已经安装了python,建议先卸载掉,否则会出现一些报错,改起来麻烦)。下载地址:
git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
成功后,进入D:\work\depot_tools如下图
3、添加D:\work\depot_tools 到系统环境变量,且一定要将其放在path的最前面(避免踩坑),为后期做准备。如图
4、其他需要设置的系统环境变量:
DEPOT_TOOLS_WIN_TOOLCHAIN 0
GYP_GENERATORS msvs-ninja, ninja
GYP_MSVS_VERSION 2019
vs2019_install C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\ (具体请看安装VS2019的位置)
WindowsSdkDir D:\Windows Kits\10 (这里具体看你VS2019的SDK在什么地方,主要看对应目录下是不是有这些文件),如下图
5、打开cmd 进入D:\work\depot_tools下,
输入命令:gclient //更新depot_tools到最新版本
特别注意:如果梯子是需要设置代理IP和端口的,请先通过命令去设置好代理(网上有告诉怎么设置的,这里由于我的梯子并不需要设置代理,所以就不设置了)
depot_tools更新完后将出现如下截图:
6、在D:\work\下创建一个新的chromium,然后 cd D:\work\chromium,
然后执行 fetch --no-history chromium //下载chromium源码
如下图,说明已经开始了,这里需要漫长的等待,我用2M/s的梯子,同步chromium源码差不多耗时120分钟,文件总大小在25.5G左右
7、下载中如果发生了中断,想继续执行要使用
gclient sync --with_branch_heads
8、随后cmd进入D:\work\chromium\src 目录中
gclient runhooks //这一步有时可以省略,担心的话也可以执行一下
9、然后生成项目编译文件,只是产生需要的目录(所以这个可以不用重复执行)
gn gen out\debug (大概耗时20秒)
10、最后一步,使用ninja工具编译
ninja -C out/debug chrome
执行时出现一个错误:FAILED: v8_context_snapshot.bin,如下图
解决办法是找到D:\work\chromium\src\base\win\com_init_check_hook.h,注释掉下面红色框中的定义就可以了。
编译成功后,将会在D:\work\chromium\src\out\debug\下出现一个all.sln的文件,用vs2019打开就可以看到源码了。同时在D:\work\chromium\src\out\debug\下也会生成一个chrome.exe的浏览器,到这里就算debug版本的编译成功了
注意:这里生成的将是开发版模式的浏览器,有些电脑运行可能会是黑屏的(原因是GPU不支持硬件加速,解决办法是生成正式版);如果要生成正式版的,需要修改.gclient和args.gn文件,我在这简单将下release正式版的生成吧
1、找到D:\work\chromium\.gclient ,打开后添加配置 "checkout_pgo_profiles": True,
2、打开翻墙梯子,进入D:\work\FFBrowser\chromium后,用cmd执行
gclient sync --with_branch_heads
3、进入src下,执行gn gen out\release --ide=vs --args=""
4、执行设置参数命令:gn args out\release
5、弹出来的文件窗口内添加下面的配置
is_debug = false
target_cpu = "x86"
is_official_build = true
symbol_level = 0
blink_symbol_level=0
v8_symbol_level = 0
enable_nacl = false
ffmpeg_branding = "Chrome"
proprietary_codecs = true
添加好后关闭文件窗口,cmd将自动往后执行
6、执行编译命令:ninja -C out/release mini_installer
成功后将会在src/out/release下得到一个mini_installer.exe的安装包,安装打开后,查看浏览器的about就可以看到显示的是正式版浏览器了
chromium的下载和编译(流程详解)相关推荐
- jenkins插件调用job_Jenkins迁移job插件Job Import Plugin流程详解
Jenkins迁移job插件Job Import Plugin流程详解 由于又开了新机器所以又要重新布置Jenkins从老项目拷贝过来,发现Job Import Plugin 这个插件更新了,和以前的 ...
- 【正点原子Linux连载】第三十二章 U-Boot启动流程详解 -摘自【正点原子】I.MX6U嵌入式Linux驱动开发指南V1.0
1)实验平台:正点原子阿尔法Linux开发板 2)平台购买地址:https://item.taobao.com/item.htm?id=603672744434 2)全套实验源码+手册+视频下载地址: ...
- View的绘制-draw流程详解
目录 作用 根据 measure 测量出的宽高,layout 布局的位置,渲染整个 View 树,将界面呈现出来. 具体分析 以下源码基于版本27 DecorView 的draw 流程 在<Vi ...
- U-Boot启动流程详解
参考:U-Boot顶层目录链接脚本文件(u-boot.lds)介绍 作者:一只青木呀 发布时间: 2020-10-23 13:52:23 网址:https://blog.csdn.net/weixin ...
- 推荐系统整体架构及算法流程详解
省时查报告-专业.及时.全面的行研报告库 省时查方案-专业.及时.全面的营销策划方案库 知识图谱在美团推荐场景中的应用实践 搜索场景下的智能实体推荐 机器学习在B站推荐系统中的应用实践 小红书推荐系统 ...
- iOS APP上架流程详解
iOS APP上架流程详解 青葱烈马 2016.04.28 前言:作为一名 iOS 开发工程师, APP 的上架是必备技能. iOS 上架的流程主要可以简单总结为: 一个包,两个网址,三个证书, 一 ...
- 非常好的Linux编译内核详解 - -
转载: http://blog.chinaunix.net/uid-263488-id-2138150.html 非常好的Linux编译内核详解 - - 一.内核简介 内核,是一个操作系统的核心.它 ...
- 《MySQL安装流程详解》及《MySQL安装一直失败,重新安装显示已安装》
<MySQL安装流程详解>及<MySQL安装一直失败,重新安装显示已安装> 本文由博主经过查阅网上资料整理总结后编写,如存在错误或不恰当之处请留言以便更正,内容仅供大家参考学习 ...
- Linux卸载安装bind,Bind编译安装详解
Bind编译安装详解 Bind是一款开放源码的DNS服务器软件,由美国加州大学Berkeley分校开发和维护的,全名为Berkeley Internet Name Domain它是目前世界上使用最为广 ...
- 多图上传以及多图排序的方法及流程详解
多图上传以及多图排序的方法及流程详解 ps:本人亲测,阿里云2核4G5M的服务器性价比很高,新用户一块多一天,老用户三块多一天,最高可以买三年,感兴趣的可以戳一下:阿里云折扣服务器 所用插件包打包下载 ...
最新文章
- [CF522D]Closest Equals
- JavaScriptSerializer-枚举的JSON序列化为字符串
- 垂直领域出海,多语言预训练好使吗?
- java 实现自旋锁_java自旋锁的代码实现
- Jmeter 新手教程
- php 明天凌晨,用php判断时间戳来输出刚刚,分钟前,小时前昨天和时间
- qt中dll缺失以及无法启动程序的正确解决方法
- 共模电感适用的频率_详解消灭EMC的三大利器:电容器/电感/磁珠!
- echarts雷达图
- 《信号与系统》(吴京)部分课后习题答案与解析——第七章(PART2)(系统及系统分析)
- 推荐一款在线文件对比工具
- ul1581标准_UL1581标准中文版-2019电线电缆和软线的UL中文版标准.pdf
- centos7快速搭建KMS服务器
- BOSS直聘下载自己的简历要钱!而且是PDF格式 - 解决方法
- linux环境包执行报错,linux环境下部署kettle,执行kitchen.sh文件报错后提示安装 libwebkitgtk 所需rpm包...
- ksu7对讲机调频软件_万能对讲机写频软件
- Word技巧:如何使用正则表达式高效替换
- appium inspect session closed due to inactivity
- hbase数据库_实验目的
- Java--配置环境变量
热门文章
- Excel·VBA单元格重复值标记颜色
- 如何使用MATLAB coder将MATLAB代码转换成C/C++语言(详细图文教程)
- 你这手写vue2.x/3.x的响应式保熟吗?
- SAP中一次性客户及供应商的应用浅晰
- 在线考试系统html源码,jQuery在线答题考试系统代码
- Linux下用imageMagick对图片进行一些操作,非常建议方便的一个图片处理工具。
- 贡献度分析--帕累托图
- 从产品经理招聘信息分析现代产品经理职责
- springboot旅游公司网站毕业设计源码110929
- Vue事件修饰符——.prevent 和.passive