【chromium】WIN10编译Chromiumbb 记录;windows10 Chromium.bb环境搭建、clone、编译、VS调试;

本文主要是介绍【chromium】WIN10编译Chromiumbb 记录;windows10 Chromium.bb环境搭建、clone、编译、VS调试;,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

    • 前言
      • 工具简介
      • 环境要求
      • 环境配置
        • 安装 depot_tools
        • gclient
        • 确定 python
      • 拉Chromiumbb代码
      • 编译Chromiumbb
        • 生成makefile
        • 编译
      • 生成 Visual Studio 解决方案
      • VS 加载.exe 单步调试
    • 总结
  • 参考

前言

  • 根据导师推荐,学习一下chromium,看书觉得有点枯燥,想搭个环境学习。
  • chromium.bb,是chromium专门的windows ports,关键是极大的简化了原版chromium的编译流程,以及针对chromium做了二进制的裁剪。
  • 注意:环境配置和编译过程出现的很多问题都是因为之前的vs之类的不在默认环境下,我又没找到在哪里改路径,所以最后一次把所有的重装在了默认路径下才通过。
  • 推荐一开始就将vs 与SDK装在默认路径下,不会出现很多我遇到的问题。

工具简介

对其中一些 Google 的工具进行简介。

  • Ninja https://ninja-build.org/
    Ninja is a small build system with a focus on speed. It differs from other build systems in two major respects: it is designed to have its input files generated by a higher-level build system, and it is designed to run builds as fast as possible.
  • GN https://gn.googlesource.com/gn
    GN is a meta-build system that generates build files for Ninja.
    GN is currently used as the build system for Chromium, Fuchsia, and related projects

环境要求

chromium.bb的官方文档,但是和chromium的一样,可能是版本问题。

  • A 64-bit Intel machine with at least 8GB of RAM. More than 16GB is highly recommended.
  • At least 100GB of free disk space on an NTFS-formatted hard drive. FAT32 will not work, as some of the Git packfiles are larger than 4GB.
  • An appropriate version of Visual Studio, as described below.
  • Windows 7 or newer.
  • 具有至少8GB RAM的64位英特尔机器。强烈建议使用超过16GB。
  • 在NTFS格式的硬盘驱动器上至少有100GB的可用磁盘空间。FAT32将无法正常工作,因为一些Git Packfiles大于4GB。
  • 如下所述,适当版本的Visual Studio。
  • Windows 7或更新。

环境配置

安装 depot_tools

下载链接

  • 下载
  • 添加 depot_tools 安装路径的环境变量 path
  • 添加 DEPOT_TOOLS_WIN_TOOLCHAIN 系统变量,并设置为0
  • 按下面命令设置自己的VS路径
    • set vs2019_install=C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional
gclient
  • From a cmd.exe shell, run the command gclient (without arguments). On first run, gclient will install all the Windows-specific bits needed to work with the code, including msysgit and python.
  • If you run gclient from a non-cmd shell (e.g., cygwin, PowerShell), it may appear to run properly, but msysgit, python, and other tools may not get installed correctly.
  • If you see strange errors with the file system on the first run of gclient, you may want to disable Windows Indexing.
  • 一开始都是错误,显示无法连接到远程服务器。
  • 于是翻墙,复制对应域名试了一下可以了,再次gclient就好了。window下编译chromium
    在这里插入图片描述
    在这里插入图片描述
确定 python
After running gclient open a command prompt and type where python and confirm that the depot_tools python.bat comes ahead of any copies of python.exe. Failing to ensure this can lead to overbuilding when using gn - see crbug.com/611087.

在这里插入图片描述

拉Chromiumbb代码

git clone https://github.com/bloomberg/chromium.bb.git

  • clone 一直不行,换了各种方法。就是会断,一直断。
  • 最后使用改DNS,使用github desktop客户端clone下来了。
  • 光代码拉下来,就已经20G了。。。。好大啊
  • 在这里插入图片描述

编译Chromiumbb

生成makefile
  • 使用下面脚本,以产生ninja makefiles,以供后续编译。
      cd srcbuild/runhooks.pybuild/blpwtk2.py

这里也卡住很久。

  • 首先是 error 2,查了很久是确实目录?

  • 在这里插入图片描述

  • 于是我顺着调用关系,也没找到怎么改。

  • 后来在 2020.8.7日报:编译通过chromium.bb - 龙泉寺扫地僧 的博客中看到他注释掉了verifyGN调用相关东西。

  • 应该是verifg 什么东西的时候调用出错,于是我也注释掉了,管他呢。

  • 在这里插入图片描述

  • 再跑的时候,出现了新的问题。

  • No supported Visual Studio can be found. Supported versions are: 16.0 (2019), 15.0 (2017),也就是没识别到我的VS 版本。

  • 查到有些人说是路径问题,我之前的VS不是按照默认路径来装的,于是我又开始看vs_toolchain.py

  • 最后将里面的路径都改成了绝对路径(包括VS、SDK的路径),并且手动修改了对应的的版本。

  • 在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  • 最后还经过了一两个缺失dll,自己下载了几个dll 来替换后。

  • 最终才勉强用脚本生成了makefile
    在这里插入图片描述

  • 最简单的方法是,重装VS+SDK,装在默认环境下,就不用手动去改这些。ps:因为我没找到怎么不手动一个一个改。

编译

ninja -C out\shared_debug blpwtk2_all

  • 20210102全是问题。。。决定先重装所有的到默认环境下吧。
  • 20210103 重装以后,用笔记本近四个小时的编译,终于有了结果。
  • 在这里插入图片描述
  • 接着打开src\out\shared_debug>content_shell.exe 即可。
  • 可以用命令:content_shell.exe https://www.baidu.com/
  • 在这里插入图片描述
  • 好的,编译完已经有这么大了,当然还有git。
  • 在这里插入图片描述

生成 Visual Studio 解决方案

  • gn gen --ide=vs out\Default 生成了 all.sln

  • 其中的 IDE options 可以根据自己的IDE来选择;--winsdk=<sdk_version> 选择自己的sdk版本

  • 但是用vs本地调试有问题。

  • 于是不加载.sln项目,根据下面的直接加载之前编译好的.exe。

  • 在这里插入图片描述

  • 在这里插入图片描述

  • 在这里插入图片描述

VS 加载.exe 单步调试

  1. 打开项目:content_shell.exe
  2. 直接可以点击启动直接运行。
  3. 在解决方案处右键 单步执行新实例,即可单步调试。

参考自:Debugging Chromium on Windows - The Chromium Projects
在这里插入图片描述

总结

  • 太菜了啊, 配环境就很就,又编译了很久。
  • 各种问题穷出,也有因为自己之前学习搞得乱七八糟的环境的因素,也有自己不会python 等问题,搞了很久。
  • 还有就是可能Chromiumbb不怎么更新了,文档很乱,readme 都不见了,很多都是Chromium的readme,和我看的博客里的readme都不一样。。。
  • 对于我来讲,要是所有环境都在默认路径,将会简便很多。

参考

  • https://github.com/bloomberg/chromium.bb/blob/master/src/docs/windows_build_instructions.md#install-depot_tools

  • https://blog.csdn.net/Haipai1998/article/details/116092223

  • chromium.bb - 扫地僧推荐

  • WIN10编译Chromiumbb记录 - 上天肖 // 后面基本跟着他的路径来做的

  • windows下搭建编译chromium的开发环境

这篇关于【chromium】WIN10编译Chromiumbb 记录;windows10 Chromium.bb环境搭建、clone、编译、VS调试;的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/322861

相关文章

Mycat搭建分库分表方式

《Mycat搭建分库分表方式》文章介绍了如何使用分库分表架构来解决单表数据量过大带来的性能和存储容量限制的问题,通过在一对主从复制节点上配置数据源,并使用分片算法将数据分配到不同的数据库表中,可以有效... 目录分库分表解决的问题分库分表架构添加数据验证结果 总结分库分表解决的问题单表数据量过大带来的性能

Java汇编源码如何查看环境搭建

《Java汇编源码如何查看环境搭建》:本文主要介绍如何在IntelliJIDEA开发环境中搭建字节码和汇编环境,以便更好地进行代码调优和JVM学习,首先,介绍了如何配置IntelliJIDEA以方... 目录一、简介二、在IDEA开发环境中搭建汇编环境2.1 在IDEA中搭建字节码查看环境2.1.1 搭建步

Servlet中配置和使用过滤器的步骤记录

《Servlet中配置和使用过滤器的步骤记录》:本文主要介绍在Servlet中配置和使用过滤器的方法,包括创建过滤器类、配置过滤器以及在Web应用中使用过滤器等步骤,文中通过代码介绍的非常详细,需... 目录创建过滤器类配置过滤器使用过滤器总结在Servlet中配置和使用过滤器主要包括创建过滤器类、配置过滤

Python基于火山引擎豆包大模型搭建QQ机器人详细教程(2024年最新)

《Python基于火山引擎豆包大模型搭建QQ机器人详细教程(2024年最新)》:本文主要介绍Python基于火山引擎豆包大模型搭建QQ机器人详细的相关资料,包括开通模型、配置APIKEY鉴权和SD... 目录豆包大模型概述开通模型付费安装 SDK 环境配置 API KEY 鉴权Ark 模型接口Prompt

在 VSCode 中配置 C++ 开发环境的详细教程

《在VSCode中配置C++开发环境的详细教程》本文详细介绍了如何在VisualStudioCode(VSCode)中配置C++开发环境,包括安装必要的工具、配置编译器、设置调试环境等步骤,通... 目录如何在 VSCode 中配置 C++ 开发环境:详细教程1. 什么是 VSCode?2. 安装 VSCo

正则表达式高级应用与性能优化记录

《正则表达式高级应用与性能优化记录》本文介绍了正则表达式的高级应用和性能优化技巧,包括文本拆分、合并、XML/HTML解析、数据分析、以及性能优化方法,通过这些技巧,可以更高效地利用正则表达式进行复杂... 目录第6章:正则表达式的高级应用6.1 模式匹配与文本处理6.1.1 文本拆分6.1.2 文本合并6

python与QT联合的详细步骤记录

《python与QT联合的详细步骤记录》:本文主要介绍python与QT联合的详细步骤,文章还展示了如何在Python中调用QT的.ui文件来实现GUI界面,并介绍了多窗口的应用,文中通过代码介绍... 目录一、文章简介二、安装pyqt5三、GUI页面设计四、python的使用python文件创建pytho

鸿蒙开发搭建flutter适配的开发环境

《鸿蒙开发搭建flutter适配的开发环境》文章详细介绍了在Windows系统上如何创建和运行鸿蒙Flutter项目,包括使用flutterdoctor检测环境、创建项目、编译HAP包以及在真机上运... 目录环境搭建创建运行项目打包项目总结环境搭建1.安装 DevEco Studio NEXT IDE

阿里开源语音识别SenseVoiceWindows环境部署

SenseVoice介绍 SenseVoice 专注于高精度多语言语音识别、情感辨识和音频事件检测多语言识别: 采用超过 40 万小时数据训练,支持超过 50 种语言,识别效果上优于 Whisper 模型。富文本识别:具备优秀的情感识别,能够在测试数据上达到和超过目前最佳情感识别模型的效果。支持声音事件检测能力,支持音乐、掌声、笑声、哭声、咳嗽、喷嚏等多种常见人机交互事件进行检测。高效推