| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 系统运维 -> Chromium内核浏览器编译记(一)采坑实录 -> 正文阅读 |
|
[系统运维]Chromium内核浏览器编译记(一)采坑实录 |
0.写在前面本篇文章是用来记录编译Chromium源码的步骤和踩过的坑,以防止后续再用到的时候忘记,同时也希望能够帮助到遇到同样问题的同学。 官方推荐使用Ubuntu系统来编译源码,在Windows或者Mac环境下编译Android客户端是不支持的,我使用的是VMware虚拟机,在上面安装了Ubuntu 20.04.4 64位操作系统,分配了200G的硬盘空间,16G内存,12核心CPU,编译时间大概在5小时左右。 1.准备工作因为Chromium的源码都在墙外,所以在下载源码之前,先要在Ubuntu系统上开启代理,本文中使用的是Clash工具,在GitHub中可以搜索到Linux版本客户端。 1.1 安装Git使用以下命令安装:
设置Git网络代理:
下载源码的过程中,可能会报Git缓存的异常,可以通过以下命令把缓存设置的大一些:
2.1 配置depot_toolsChromium使用了depot_tools来管理代码,先通过Git拉取代码:
配置环境变量:
注意:文章中是把depot_tool下载到了【home/用户名】目录下,所以使用【$HOME】代表,环境变量要根据实际下载的路径修改。 源码的位置在这里: 2.源码下载2.1 拉取Chromium源码当前处于【home/用户名】目录下,执行以下命令,创建chromium文件夹并进入:
拉取代码:
还可以设置不拉取历史记录,这样下载会快些:
提示下图中进度,则说明已经成功开始下载了: 2.2 下载Android依赖
3.源码编译Chromium使用Ninja作为主要的构建工具,并通过GN来生成.ninja配置文件,先初始化下配置文件:
关于target_cpu与本机代码指令集的对应关系,可以参照下列表格:
除了target_os和target_cpu之外,我们还可以根据编译类型(如debug、release)设置一些其他的参数:
初始化完成后,我们使用以下命令来编译Chromium APK:
会提示下图中的进度: 经过漫长的等待,本文用了大概5个小时,如果没有出现任何报错的话,会在控制台看到以下信息:
证明apk已经编译完成,名称为 ChromePublic.apk 在 out/Default/apks 目录下。 编译时会产生一些缓存文件,可以通过以下命令进行清理,清理完成后,仅保留args.gn、build.ninja等基础的配置文件,以便我们进行一次编译:
更多GN指令可以查看:https://gn.googlesource.com/gn/+/master/docs/quick_start.md 4.遇到的问题4.1 磁盘空间至少要分配100G的硬盘空间,Chromium Android相关的源码大概在30G左右,刚开始编译的时候,我只分配了60G的硬盘空间,编译过程中生成了几十G的缓存文件,直接占满了硬盘,导致虚拟机崩溃,无奈又重装系统。 4.2 depot_tools环境变量如果拉取源码的时候,提示找不到fetch指令,那一定是环境变量的问题了,仔细看下路径设置的对不对。 4.3 Git网络代理记得一定要给Git设置网络代理,不能拉取源码会一直超时,梯子我用的收费的Ghelper,里面有Clash的订阅。 4.4 下载源码或编译时中断了怎么办下载源码执行下面的指令就可以了:
编译中断再执行下编译指令,会继续编译:
4.5 编译过程中提示:No such file or directory: ‘gcc’安装下gcc就妥了:
4.6 编译过程中提示:No such file or directory: ‘gperf’同样的,安装下gperf:
4.7 编译过程中提示:No such file or directory: ‘./clang_x86_v8_arm/gen-regexp-special-case’缺少什么安装什么,遇到其他类似的报错,也是同样操作:
5.写在最后把apk安装看下效果,可以看到是最新的102.0.4966.0版本内核: 到这里,Chromium源码的编译就完成了,有问题可以给我留言评论,下一篇文章讲一讲如何定制修改源码。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/15 23:26:43- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |