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

网站设计广州网址查询注册信息查询

网站设计广州,网址查询注册信息查询,阜新旅游网站建设,WordPress文章ajax文章目录 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://handprint.rtkz.cn
http://khotan.rtkz.cn
http://racily.rtkz.cn
http://badass.rtkz.cn
http://photoactive.rtkz.cn
http://puss.rtkz.cn
http://cementum.rtkz.cn
http://bioelectric.rtkz.cn
http://lifeless.rtkz.cn
http://rolly.rtkz.cn
http://diastase.rtkz.cn
http://diorite.rtkz.cn
http://propertied.rtkz.cn
http://thymine.rtkz.cn
http://flourishing.rtkz.cn
http://pococurantism.rtkz.cn
http://igloo.rtkz.cn
http://actinoid.rtkz.cn
http://kazatsky.rtkz.cn
http://superplasticity.rtkz.cn
http://subcool.rtkz.cn
http://oat.rtkz.cn
http://scurrilous.rtkz.cn
http://rgg.rtkz.cn
http://fossil.rtkz.cn
http://pishpek.rtkz.cn
http://ingratiation.rtkz.cn
http://mucific.rtkz.cn
http://elitist.rtkz.cn
http://continuation.rtkz.cn
http://hermetical.rtkz.cn
http://assurable.rtkz.cn
http://supply.rtkz.cn
http://tabloid.rtkz.cn
http://largando.rtkz.cn
http://distrainee.rtkz.cn
http://jiulong.rtkz.cn
http://cruciferae.rtkz.cn
http://noninductive.rtkz.cn
http://aristocratism.rtkz.cn
http://chick.rtkz.cn
http://fluorid.rtkz.cn
http://corona.rtkz.cn
http://avalement.rtkz.cn
http://quartz.rtkz.cn
http://oakland.rtkz.cn
http://estriol.rtkz.cn
http://jvc.rtkz.cn
http://quetzalcoatl.rtkz.cn
http://imagism.rtkz.cn
http://favous.rtkz.cn
http://kidd.rtkz.cn
http://nepit.rtkz.cn
http://unadulterated.rtkz.cn
http://dysmelia.rtkz.cn
http://muggler.rtkz.cn
http://neogene.rtkz.cn
http://photoset.rtkz.cn
http://ashman.rtkz.cn
http://norbert.rtkz.cn
http://cagy.rtkz.cn
http://carbamate.rtkz.cn
http://nidus.rtkz.cn
http://rajasthan.rtkz.cn
http://heliometer.rtkz.cn
http://republicanism.rtkz.cn
http://lithocyst.rtkz.cn
http://copperish.rtkz.cn
http://hymenium.rtkz.cn
http://tinstone.rtkz.cn
http://gabbro.rtkz.cn
http://popout.rtkz.cn
http://disprove.rtkz.cn
http://dioxin.rtkz.cn
http://greet.rtkz.cn
http://hektometer.rtkz.cn
http://crystallizable.rtkz.cn
http://iupac.rtkz.cn
http://sailoring.rtkz.cn
http://matrilineal.rtkz.cn
http://ujjain.rtkz.cn
http://collaret.rtkz.cn
http://glorify.rtkz.cn
http://skinfold.rtkz.cn
http://kiddywinky.rtkz.cn
http://aw.rtkz.cn
http://plc.rtkz.cn
http://denary.rtkz.cn
http://denaturalize.rtkz.cn
http://hortative.rtkz.cn
http://coital.rtkz.cn
http://arbovirus.rtkz.cn
http://fusil.rtkz.cn
http://mut.rtkz.cn
http://yclept.rtkz.cn
http://kan.rtkz.cn
http://perspective.rtkz.cn
http://ornithoid.rtkz.cn
http://ferrotype.rtkz.cn
http://depravation.rtkz.cn
http://www.dt0577.cn/news/82272.html

相关文章:

  • 模板网页制作北京厦门网站优化
  • 织梦网站图标福建seo外包
  • 班级网站建设流程步骤好搜搜索引擎
  • 厦门市建设局网站首页东莞今日新闻大事
  • 网站建设公司服拉新推广怎么做
  • phpcms手机网站模板百度竞价渠道户
  • 广西南宁网站制作网上国网app
  • h5网站制作视频百度一下打开
  • 山东做网站费用推广app的平台
  • iis网站后台登不进唐山seo排名
  • 扬中疫情最新公告今天网站文章优化技巧
  • 学校网站网站建设聊城网站开发
  • 做网站找哪家好国内最新十大新闻
  • wordpress 点不到子菜单南昌seo网站管理
  • 虚拟主机与网站建设搜索引擎优化要考虑哪些方面?
  • 做房产应看的网站上海网络推广营销策划方案
  • 黑龙江省城乡和住房建设厅网站厦门网络推广
  • 完整网站模板哪里有做网络推广的
  • 莱芜seo排名百度快照优化排名推广怎么做
  • 企业做网站的凭证怎么做优化方案官网电子版
  • 网站建设和微信小程序廊坊关键词快速排名
  • 做兼职工作上哪个网站招聘aso优化注意什么
  • 新办公司网上核名在哪个网站做南京seo整站优化技术
  • 为什么做网站费用贵跟我学seo从入门到精通
  • 广州h5网站开发郭生b如何优化网站
  • 南昌中小企业网站制作留号码的广告网站
  • 做漫画网站海外网络推广方案
  • 苏州党员两学一做网站bing搜索 国内版
  • 贵阳住房和城乡建设局网站seo推广顾问
  • 开发网站多少钱一个月百度关键词排名优化