• Ubuntu 20.04编译Chrome浏览器


    本文记录chrome浏览器编译过程,帮助大家避坑qaq

    官网文档:https://chromium.googlesource.com/chromium/src/+/main/docs/linux/build_instructions.md

    一.系统要求

    • 一台64位的英特尔机器,至少需要8GB的RAM。强烈推荐超过16GB。
    • 至少需要100GB的空闲磁盘空间。
    • 你必须已经安装了Git和Python v3.8或更高版本(并且python3必须指向一个Python v3.8或更高版本的二进制文件)。如果你的系统中没有合适的版本,Depot_tools捆绑了一个合适的Python版本在$depot_tools/python-bin中。

    二.下载 depot_tools

    克隆depot_tools仓库:

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

    将depot_tools添加到你的PATH环境变量的开头,假设你克隆了depot_tools到/path/to/depot_tools:

    export PATH="/path/to/depot_tools:$PATH"
    
    • 1

    三.获取代码

    创建一个Chromium目录,并切换到该目录(您可以随意命名此目录和放置在任何位置,只要完整路径不含有空格):

    mkdir ~/chromium && cd ~/chromium
    
    • 1

    运行depot_tools中的fetch工具来检出代码及其依赖项。

    fetch --nohooks chromium
    
    • 1

    如果您不需要完整的代码仓库历史记录,可以通过在fetch命令中添加 –no-history 标志来节省大量时间。

    即使在快速网络连接上,也预计该命令需要30分钟,而在较慢的连接上可能需要数小时。注意需要科学上网!!!

    如果您已经在计算机上安装了构建依赖项,您可以省略 –nohooks 标志,fetch将在结束时自动执行 gclient runhooks

    中间会遇到各种问题,请大家自助查看(大部分都是网络的问题):

    报错:error: RPC failed; curl 56 GnuTLS recv error (-9): Error decoding the received TLS packet.
    由于git默认缓存大小不足导致的。
    解决方法是:使用下面的命令增加缓存大小。

    git config --global http.postBuffer 52428800000
    
    • 1

    报错:gclient sync fails running running
    解决方法:https://github.com/intel/ozone-wayland/issues/395

    当fetch完成时,它将创建一个隐藏的 .gclient 文件和一个名为 src 的目录在工作目录中。接下来的说明假定您已切换到 src 目录中:

    cd src
    
    • 1

    四.安装额外的构建依赖项:

    ./build/install-build-deps.sh
    
    • 1

    运行 hooks

    一旦您至少运行了一次install-build-deps脚本,您现在可以运行Chromium特定的hooks,这些hooks将下载您可能需要的额外二进制文件和其他内容:

    gclient runhooks
    
    • 1

    五.配置构建环境

    Chromium使用Ninja作为其主要构建工具,同时使用一个名为GN的工具来生成 .ninja 文件。您可以创建任意数量的具有不同配置的构建目录。要创建一个构建目录,请运行:

    gn gen out/Default
    
    • 1

    每个新的构建目录只需要运行一次,Ninja会根据需要更新构建文件。

    您可以将Default替换为其他名称,但它应该是out目录的子目录。

    有关其他构建参数,包括发布设置,请参阅GN构建配置。默认情况下,将创建一个与当前主机操作系统和CPU匹配的调试组件构建。

    要了解有关GN的更多信息,请在命令行上运行gn help或阅读快速入门指南。

    六.构建Chromium

    使用以下命令使用Ninja构建Chromium:

    autoninja -C out/Default chrome
    
    • 1

    (autoninja是一个包装器,它会自动提供传递给ninja的参数的最佳值。)

    您可以通过从命令行运行以下命令获取GN的所有其他构建目标列表:

     gn ls out/Default
    
    • 1

    要编译其中一个目标,请将GN标签传递给Ninja,不要在前面加“//”(例如,对于 //chrome/test:unit_tests,请使用 autoninja -C out/Default chrome/test:unit_tests)。

    七.运行Chromium

    一旦构建完成,您可以简单地运行浏览器:

    out/Default/chrome
    
    • 1

    在这里插入图片描述

  • 相关阅读:
    外汇天眼:外汇投资小白必读! 4大外汇交易常见提问释疑
    黑马javawebDay11oss的使用
    【汇编语言-王爽】第六章:包含多个段的程序
    【MATLAB源码-第56期】基于WOA白鲸优化算法和PSO粒子群优化算法的三维路径规划对比。
    系统入门C语言的寄存器
    .ipynb文件普盲与打开
    【新知实验室-TRTC开发】实时音视频之web端云监工系统(Vue3+Element plus+TS+Pinia)
    视频监控系统/安防视频平台EasyCVR广场视频细节优化
    Nuxt脚手架nuxi初始化失败原因&解决方法
    《文化相对论》:危机重重的世界,对话才能产生转机
  • 原文地址:https://blog.csdn.net/qq_41179280/article/details/134334130