【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

相关文章

Web技术与Nginx网站环境部署教程

《Web技术与Nginx网站环境部署教程》:本文主要介绍Web技术与Nginx网站环境部署教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、Web基础1.域名系统DNS2.Hosts文件3.DNS4.域名注册二.网页与html1.网页概述2.HTML概述3.

Ubuntu上手动安装Go环境并解决“可执行文件格式错误”问题

《Ubuntu上手动安装Go环境并解决“可执行文件格式错误”问题》:本文主要介绍Ubuntu上手动安装Go环境并解决“可执行文件格式错误”问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未... 目录一、前言二、系统架构检测三、卸载旧版 Go四、下载并安装正确版本五、配置环境变量六、验证安装七、常见

使用nohup和--remove-source-files在后台运行rsync并记录日志方式

《使用nohup和--remove-source-files在后台运行rsync并记录日志方式》:本文主要介绍使用nohup和--remove-source-files在后台运行rsync并记录日... 目录一、什么是 --remove-source-files?二、示例命令三、命令详解1. nohup2.

Spring Cloud GateWay搭建全过程

《SpringCloudGateWay搭建全过程》:本文主要介绍SpringCloudGateWay搭建全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录Spring Cloud GateWay搭建1.搭建注册中心1.1添加依赖1.2 配置文件及启动类1.3 测

SpringBoot快速搭建TCP服务端和客户端全过程

《SpringBoot快速搭建TCP服务端和客户端全过程》:本文主要介绍SpringBoot快速搭建TCP服务端和客户端全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录TCPServerTCPClient总结由于工作需要,研究了SpringBoot搭建TCP通信的过程

Python MCPInspector调试思路详解

《PythonMCPInspector调试思路详解》:本文主要介绍PythonMCPInspector调试思路详解,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋... 目录python-MCPInspector调试1-核心知识点2-思路整理1-核心思路2-核心代码3-参考网址

Android NDK版本迭代与FFmpeg交叉编译完全指南

《AndroidNDK版本迭代与FFmpeg交叉编译完全指南》在Android开发中,使用NDK进行原生代码开发是一项常见需求,特别是当我们需要集成FFmpeg这样的多媒体处理库时,本文将深入分析A... 目录一、android NDK版本迭代分界线二、FFmpeg交叉编译关键注意事项三、完整编译脚本示例四

Linux系统调试之ltrace工具使用与调试过程

《Linux系统调试之ltrace工具使用与调试过程》:本文主要介绍Linux系统调试之ltrace工具使用与调试过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录一、ltrace 定义与作用二、ltrace 工作原理1. 劫持进程的 PLT/GOT 表2. 重定

Gradle下如何搭建SpringCloud分布式环境

《Gradle下如何搭建SpringCloud分布式环境》:本文主要介绍Gradle下如何搭建SpringCloud分布式环境问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录Gradle下搭建SpringCloud分布式环境1.idea配置好gradle2.创建一个空的gr

Linux搭建单机MySQL8.0.26版本的操作方法

《Linux搭建单机MySQL8.0.26版本的操作方法》:本文主要介绍Linux搭建单机MySQL8.0.26版本的操作方法,本文通过图文并茂的形式给大家讲解的非常详细,感兴趣的朋友一起看看吧... 目录概述环境信息数据库服务安装步骤下载前置依赖服务下载方式一:进入官网下载,并上传到宿主机中,适合离线环境