热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

【chromium】win10VS2019环境chromium配置与编译。

文章目录硬件&软件配置安装depot_toolsgetthecode编译基础概念硬件&软件配置系统需求:vs2019需求:最好默认路径,


文章目录

        • 硬件&软件配置
        • 安装 depot_tools
        • get the code
        • 编译
        • 基础概念


硬件&软件配置

系统需求:
在这里插入图片描述
vs2019 需求: 最好默认路径,减少麻烦。


  • 桌面c++
    • mfc、atl
  • .>= 10.0.19041 win10 SDK
    • SDK Debugging Tools,控制面板程序中勾选安装
      • Control Panel → Programs → Programs and Features → Select the “Windows Software Development Kit” → Change → Change → Check “Debugging Tools For Windows” → Change.

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


安装 depot_tools

下载链接


  • 下载
  • 环境变量 path 添加 depot_tools 安装路径
  • 系统变量添加 DEPOT_TOOLS_WIN_TOOLCHAIN ,并设置为0
  • 按下面命令在 cmd 设置自己的VS路径
    • set vs2019_install=C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional
    • gclient
      • 用于安装windows 需要的东西,如mysysgit 、python
  • 确定 python安装
    • where python 确定 python.bat 在 python.exe.之前

get the code


通常需要设置代理/ 有全局代理


$ git config --global user.name "My Name"
$ git config --global user.email "my-name@chromium.org"
$ git config --global core.autocrlf false
$ git config --global core.filemode false
$ git config --global branch.autosetuprebase always

  • fetch 代码
    • fetch --no-history chromium 不下载历史信息
      • 大概率需要设代理,中断的话,使用gclient sync同步
      • 如果需要历史信息,以回退调试固定版本,还是留着历史好了。

  • 出现了错误:应该是代理问题?没下载到这个一个文件。
    • Failed to download prebuilt clang package clang-llvmorg-14-init-17086-g38e16e1c-6.tgz Use build.py if you want to build locally. Exiting.
  • 然后使用gclient sync同步。
    • 出现问题:将对应error文件夹都删掉重新同步就好了。
      • Syncing projects: 85% (18/21) src/third_party/angle src/docs/website (ERROR)


编译


  • gn gen --ide=vs out\build 生成 vs工程(可以使用VS编译了,或者用命令行用ninja编译)

    • 得到结果:
      • Generating Visual Studio projects took 12001ms Done. Made 17069 targets from 2996 files in 43099ms
  • ninja -C out\build chrome 使用ninja 编译 (需很久)(出错可以重复增量编译?)

    • 结果:[52062/52062] STAMP obj/chrome/chrome.stamp
  • 可以VS打开.exe 单步调试。

  • 可以VS打开all.sln GN编译调试。

    • 在这里插入图片描述

基础概念


  • gn & ninja

    • gn 相当于 cmake;ninja 相当于 make;
      • gn 取代 GYP,GYP取代CMake 。gn 用C++写,提高速度。
        • GYP相较于CMake:GYP 配置文件编写方式 强调模块化、结构化。
      • gn 使用 Ninja 取代 Make 作为新的构建工具。Ninja 追求速度,减少特性以加快编译速度,
        • ninja 使用build.ninja 定义构建规则,相当于make 的Makefile
    • Chromium使用 Ninja 作为编译工具,使用GN生成.ninja配置文件
  • so many projects

    • 解决方案文件.sln 中有太多的项目了,找想看的看吧。
    • 然后attach上进程debug

推荐阅读
  • Jupyter Notebook多语言环境搭建指南
    本文详细介绍了如何在Linux环境下为Jupyter Notebook配置Python、Python3、R及Go四种编程语言的环境,包括必要的软件安装和配置步骤。 ... [详细]
  • 如何更换Anaconda和pip的国内镜像源
    本文详细介绍了如何通过国内多个知名镜像站(如北京外国语大学、中国科学技术大学、阿里巴巴等)更换Anaconda和pip的源,以提高软件包的下载速度和安装效率。 ... [详细]
  • 本文分享了作者在使用LaTeX过程中的几点心得,涵盖了从文档编辑、代码高亮、图形绘制到3D模型展示等多个方面的内容。适合希望深入了解LaTeX高级功能的用户。 ... [详细]
  • 本文探讨了使用Python实现监控信息收集的方法,涵盖从基础的日志记录到复杂的系统运维解决方案,旨在帮助开发者和运维人员提升工作效率。 ... [详细]
  • 从理想主义者的内心深处萌发的技术信仰,推动了云原生技术在全球范围内的快速发展。本文将带你深入了解阿里巴巴在开源领域的贡献与成就。 ... [详细]
  • 转载自:https:blog.csdn.netu013948858articledetails77800663【python】pip安装报错UnicodeDecode ... [详细]
  • 解决 Pytest 运行时出现 FileNotFoundError 的方法
    在使用 Pytest 进行测试时,可能会遇到 FileNotFoundError 错误,提示无法找到指定的文件或目录。本文将探讨该错误的原因及解决方案。 ... [详细]
  • 本文介绍了进程的基本概念及其在操作系统中的重要性,探讨了进程与程序的区别,以及如何通过多进程实现并发和并行。文章还详细讲解了Python中的multiprocessing模块,包括Process类的使用方法、进程间的同步与异步调用、阻塞与非阻塞操作,并通过实例演示了进程池的应用。 ... [详细]
  • Python Selenium WebDriver 浏览器驱动详解与实践
    本文详细介绍了如何使用Python结合Selenium和unittest构建自动化测试框架,重点解析了WebDriver浏览器驱动的配置与使用方法,涵盖Chrome、Firefox、IE/Edge等主流浏览器。 ... [详细]
  • 本文详细介绍了Socket在Linux内核中的实现机制,包括基本的Socket结构、协议操作集以及不同协议下的具体实现。通过这些内容,读者可以更好地理解Socket的工作原理。 ... [详细]
  • 本文探讨了如何利用 Android 的 Movie 类来展示 GIF 动画,并详细介绍了调整 GIF 尺寸以适应不同布局的方法。同时,提供了相关的代码示例和注意事项。 ... [详细]
  • 利用Node.js实现PSD文件的高效切图
    本文介绍了如何通过Node.js及其psd2json模块,快速实现PSD文件的自动化切图过程,以适应项目中频繁的界面更新需求。此方法不仅提高了工作效率,还简化了从设计稿到实际应用的转换流程。 ... [详细]
  • Docker安全策略与管理
    本文探讨了Docker的安全挑战、核心安全特性及其管理策略,旨在帮助读者深入理解Docker安全机制,并提供实用的安全管理建议。 ... [详细]
  • 对于初学者而言,搭建一个高效稳定的 Python 开发环境是入门的关键一步。本文将详细介绍如何利用 Anaconda 和 Jupyter Notebook 来构建一个既易于管理又功能强大的开发环境。 ... [详细]
  • 本文详细介绍了在Linux操作系统上安装和部署MySQL数据库的过程,包括必要的环境准备、安装步骤、配置优化及安全设置等内容。 ... [详细]
author-avatar
小妖
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有