网站上不去首页seo要怎么办,网页设计实训报告1200,去西安需要隔离吗,dw网页制作教程练习文章目录 Ninja 构建系统Ninja 是什么#xff1f;Ninja 的定位Ninja 的构建流程#xff08;配合 CMake#xff09;1. 准备 CMake 项目2. 执行构建3. 清理构建4. 依赖分析#xff08;增量构建#xff09; Ninja 构建文件简析#xff08;不建议手写#xff0c;但值得了解Ninja 的定位Ninja 的构建流程配合 CMake1. 准备 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 clean4. 依赖分析增量构建
Ninja 会自动追踪文件修改时间仅构建变更项增量构建非常快。 Ninja 构建文件简析不建议手写但值得了解
一个典型的 build.ninja 结构可能如下
rule CXXcommand g -c $in -o $outbuild main.o: CXX main.cpp
build app: link main.orule 定义构建动作build 指定依赖关系和目标Ninja 使用 简洁无逻辑的语法无条件判断、无变量展开逻辑保证速度和一致性。 Ninja 与 Make 的对比
对比项NinjaMake构建速度极快适合大型项目相对较慢并发能力默认高并发多核支持但性能略逊构建文件可维护性不建议手写太底层可自定义规则可读性不适合人写Makefile 人工可维护与 CMake 配合优选支持但生成慢支持平台跨平台Windows/Linux/macOS同样跨平台 适合 Ninja 的使用场景
场景类型是否适合原因单文件小项目❌Ninja 没有优势中型项目✅构建速度快配合 CMake 使用大型 C 工程✅✅最快增量构建体验支持并发CI/CD 自动构建✅速度快、输出可控Android/Chromium✅Google 官方推荐 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-buildmacOSbrew install ninjaWindowsChocolatey: choco install ninja 或下载 zip 解压 总结 Ninja 是一个轻量级、高性能、执行级别的构建工具适合通过 CMake 等元构建系统生成构建规则并执行构建特别适用于大型项目、高并发构建场景。