当前位置: 首页 > news >正文

集团公司网站建设国外设计网站d

集团公司网站建设,国外设计网站d,免费高清无专码区,成都广告推广策划宣传公司文章目录 Ninja 构建系统Ninja 是什么?Ninja 的定位Ninja 的构建流程(配合 CMake)1. 准备 CMake 项目2. 执行构建3. 清理构建4. 依赖分析(增量构建) Ninja 构建文件简析(不建议手写,但值得了解&…

文章目录

  • Ninja 构建系统
    • Ninja 是什么?
    • Ninja 的定位
    • Ninja 的构建流程(配合 CMake)
      • 1. 准备 CMake 项目
      • 2. 执行构建
      • 3. 清理构建
      • 4. 依赖分析(增量构建)
    • Ninja 构建文件简析(不建议手写,但值得了解)
    • Ninja 与 Make 的对比
    • 适合 Ninja 的使用场景
    • 如何切换项目为 Ninja 构建?
    • 安装 Ninja
    • 总结

Ninja 构建系统

Ninja 是什么?

Ninja 是一个专注于 极致构建速度 的构建工具,由 Google 的 Evan Martin 开发,最初用于加速大型项目(如 Chromium)的构建。

与 GNU Make 不同,它不是“构建语言”或“元构建系统”,而是一个 非常简洁、纯粹的构建执行工具,用于执行已经生成好的构建规则。


Ninja 的定位

特点说明
构建工具只负责构建执行,不负责生成构建规则(如依赖关系)
快速执行规则设计目标是极致速度:少 IO、快速增量构建
不适合手写构建文件需要由 CMake、Meson、GN 等工具生成 .ninja 文件

Ninja 的构建流程(配合 CMake)

1. 准备 CMake 项目

mkdir build
cd build
cmake -G Ninja ..

这会生成 Ninja 构建规则文件:

build.ninja
rules.ninja
CMakeFiles/

2. 执行构建

ninja       # 默认构建所有目标
ninja MyApp # 构建单个目标

3. 清理构建

ninja -t clean

4. 依赖分析(增量构建)

Ninja 会自动追踪文件修改时间,仅构建变更项,增量构建非常快。


Ninja 构建文件简析(不建议手写,但值得了解)

一个典型的 build.ninja 结构可能如下:

rule CXXcommand = g++ -c $in -o $outbuild main.o: CXX main.cpp
build app: link main.o
  • rule 定义构建动作;
  • build 指定依赖关系和目标;
  • Ninja 使用 简洁无逻辑的语法(无条件判断、无变量展开逻辑)保证速度和一致性。

Ninja 与 Make 的对比

对比项NinjaMake
构建速度极快(适合大型项目)相对较慢
并发能力默认高并发(多核支持)但性能略逊
构建文件可维护性不建议手写(太底层)可自定义规则
可读性不适合人写Makefile 人工可维护
与 CMake 配合优选支持但生成慢
支持平台跨平台(Windows/Linux/macOS)同样跨平台

适合 Ninja 的使用场景

场景类型是否适合原因
单文件小项目Ninja 没有优势
中型项目构建速度快,配合 CMake 使用
大型 C++ 工程✅✅最快增量构建体验,支持并发
CI/CD 自动构建速度快、输出可控
Android/ChromiumGoogle 官方推荐 Ninja 构建

如何切换项目为 Ninja 构建?

mkdir build-ninja
cd build-ninja
cmake -G Ninja ..
ninja

也可以写入 CMakePresets.json

{"version": 3,"configurePresets": [{"name": "ninja-release","generator": "Ninja","description": "Release build using Ninja","binaryDir": "build/ninja","cacheVariables": {"CMAKE_BUILD_TYPE": "Release"}}]
}

安装 Ninja

平台安装方式
Ubuntusudo apt install ninja-build
macOSbrew install ninja
WindowsChocolatey: choco install ninja 或下载 zip 解压

总结

Ninja 是一个轻量级、高性能、执行级别的构建工具,适合通过 CMake 等元构建系统生成构建规则并执行构建,特别适用于大型项目、高并发构建场景。

http://www.yayakq.cn/news/504107/

相关文章:

  • 网站托管如何收费广州市新闻发布
  • 搭建网站挣钱微信的微网站模板
  • html5快速建站修改网站图标
  • 网站建设方案报价单小程序前后端开发
  • 设计公司网站源码手机版网站原理
  • 网站模版修改建游戏网站
  • 什么是网站前台深圳做电商平台网站建设
  • 免费网站建设哪个好 - 百度私域视频
  • 北京市环境建设办公室网站网站建设课程设计报告php
  • 网站制作是不是要一个后台wordpress制作公司主页
  • 网站开发的3个阶段企业内网模板
  • 网站 做 app开发营销推广案例
  • 如何做班级网站网站你应该知道我说的是什么吧
  • 合肥市做网站多少钱wordpress 导出用户权限
  • 大朗做网站北京做网站费用
  • 固原市住房和城乡建设局网站企业做网页还是网站
  • 南宁网站建设 超博网络2019建设银行招聘网站
  • 太仓住房与城乡建设局网站怎么棋牌网站建设
  • 二级域名网站遵义市住房城乡建设局网站
  • 手机在线网站东南亚vps
  • 佛山网站建设在哪cms系统主要功能
  • django做的网站在线网站建设哪家好
  • 做网站包括什么条件建筑网建设通查询
  • 设计类招聘网站石家庄中小企业网站制作
  • 可以做点赞的网站wordpress手机验证码登录界面
  • 如何在网站标题加logo小程序微信
  • 网站做授权登录界面呼和浩特装修网站
  • 贺州网站制作天津公司网站设计
  • 扁平化风格 网站网页浏览器打开
  • wordpress文章自动发布张家港网站推广优化