热门标签 | 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

推荐阅读
  • 本文详细介绍了如何在 Windows 环境下使用 node-gyp 工具进行 Node.js 本地扩展的编译和配置,涵盖从环境搭建到代码实现的全过程。 ... [详细]
  • 在Ubuntu 16.04 LTS上配置Qt Creator开发环境
    本文详细介绍了如何在Ubuntu 16.04 LTS系统中安装和配置Qt Creator,涵盖了从下载到安装的全过程,并提供了常见问题的解决方案。 ... [详细]
  • 本文深入探讨了Linux系统中网卡绑定(bonding)的七种工作模式。网卡绑定技术通过将多个物理网卡组合成一个逻辑网卡,实现网络冗余、带宽聚合和负载均衡,在生产环境中广泛应用。文章详细介绍了每种模式的特点、适用场景及配置方法。 ... [详细]
  • 创建项目:Visual Studio Online 入门指南
    本文介绍如何使用微软的 Visual Studio Online(VSO)创建和管理开发项目。作为一款基于云计算的开发平台,VSO 提供了丰富的工具和服务,简化了项目的配置和部署流程。 ... [详细]
  • Windows 7 64位系统下Redis的安装与PHP Redis扩展配置
    本文详细介绍了在Windows 7 64位操作系统中安装Redis以及配置PHP Redis扩展的方法,包括下载、安装和基本使用步骤。适合对Redis和PHP集成感兴趣的开发人员参考。 ... [详细]
  • Coursera ML 机器学习
    2019独角兽企业重金招聘Python工程师标准线性回归算法计算过程CostFunction梯度下降算法多变量回归![选择特征](https:static.oschina.n ... [详细]
  • 在编译BSP包过程中,遇到了一个与 'gets' 函数相关的编译错误。该问题通常发生在较新的编译环境中,由于 'gets' 函数已被弃用并视为安全漏洞。本文将详细介绍如何通过修改源代码和配置文件来解决这一问题。 ... [详细]
  • 使用C#开发SQL Server存储过程的指南
    本文介绍如何利用C#在SQL Server中创建存储过程,涵盖背景、步骤和应用场景,旨在帮助开发者更好地理解和应用这一技术。 ... [详细]
  • 选择适合生产环境的Docker存储驱动
    本文旨在探讨如何在生产环境中选择合适的Docker存储驱动,并详细介绍不同Linux发行版下的配置方法。通过参考官方文档和兼容性矩阵,提供实用的操作指南。 ... [详细]
  • CentOS系统安装与配置常见问题及解决方案
    本文详细介绍了在CentOS系统安装过程中遇到的常见问题及其解决方案,包括Vi编辑器的操作、图形界面的安装、网络连接故障排除等。通过本文,读者可以更好地理解和解决这些常见问题。 ... [详细]
  • 本文详细介绍了C语言的起源、发展及其标准化过程,涵盖了从早期的BCPL和B语言到现代C语言的演变,并探讨了其在操作系统和跨平台编程中的重要地位。 ... [详细]
  • 本文详细介绍了如何通过RPM包在Linux系统(如CentOS)上安装MySQL 5.6。涵盖了检查现有安装、下载和安装RPM包、配置MySQL以及设置远程访问和开机自启动等步骤。 ... [详细]
  • 嵌入式开发环境搭建与文件传输指南
    本文详细介绍了如何为嵌入式应用开发搭建必要的软硬件环境,并提供了通过串口和网线两种方式将文件传输到开发板的具体步骤。适合Linux开发初学者参考。 ... [详细]
  • 本文探讨了如何通过预处理器开关选择不同的类实现,并解决在特定情况下遇到的链接器错误。 ... [详细]
  • 本文详细介绍了如何在PHP中进行数组删除、清空等操作,并提供了在Visual Studio Code中创建PHP文件的步骤。 ... [详细]
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社区 版权所有