当前位置: 首页 > 软件库 > 开发工具 > 编译器 >

Ninja

小而快的构建系统
授权协议 Apache
开发语言 C/C++
所属分类 开发工具、 编译器
软件类型 开源软件
地区 不详
投 递 者 仲孙疏珂
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

Ninja 是Google的一名程序员推出的注重速度的构建工具,一般在Unix/Linux上的程序通过make/makefile来构建编译,而Ninja通过将编译任务并行组织,大大提高了构建速度。

Ninja的目标是成为汇编程序。

构建系统在需要做出决策时变得缓慢。当您处于编辑 - 编译周期时,您希望它尽可能快 - 您希望构建系统执行必要的最少工作以确定需要立即构建的内容。

Ninja包含描述任意依赖图所需的最基本功能。它缺乏语法使得无法表达复杂的决策。

相反,Ninja旨在与生成其输入文件的单独程序一起使用。生成器程序(如  ./configure 在autotools项目中找到的)可以分析系统依赖性并尽可能多地做出尽可能多的决策,以便增量构建保持快速。超越自动工具,甚至构建时决定,比如“我应该使用哪个编译器标志?” 或“我应该构建调试或发布模式二进制文件?” 属于 .ninja 文件生成器。

设计目标:

  • 非常快速(即即时)增量构建,即使对于非常大的项目也是如此。
  • 关于如何构建代码的政策很少。不同的项目和更高级别的构建系统对如何构建代码有不同的看法; 例如,应该在源代码旁边构建对象还是应该将所有构建输出放到一个单独的目录中?是否有一个“包”规则来构建项目的可分发包?通过尝试允许实施这些决策而不是选择来实现这些决定,即使这会导致更多的冗长。
  • 获取依赖关系是正确的,特别是使用Makefiles很难得到的情况(例如,输出需要对用于生成它们的命令行的隐式依赖;要构建C源代码,您需要使用gcc的 -M 标志来实现标头依赖性)。
  • 当方便和速度发生冲突时,请选择速度。

一些明确的非目标

  • 手动编写构建文件的方便语法。 你应该使用另一个程序生成你的忍者文件。这就是我们如何回避许多政策决定。
  • 内置规则。开箱即用,Ninja没有例如编译C代码的规则。
  • 构建的构建时自定义。选项属于生成忍者文件的程序
  • 构建时决策能力,例如条件或搜索路径。做决定很慢。

重申一下,Ninja比其他构建系统更快,因为它非常简单。您必须告诉Ninja在创建项目 .ninja 文件时要做什么。

  • 版权声明:原创文章,欢迎转载,但请注明出处,谢谢。https://blog.csdn.net/qiuguolu1108/article/details/103842556 如果你不想编译gn、ninja,想直接使用gn、ninja的二进制程序,可以直接到博客的最后,通过链接直接下载,省去自己编译。分享的链接中有测试用例,可以直接测试gn、ninja是否可用。 gn的安装需要使用ninja,所以首先

  • Ninja是一个比Make更快速的小型构建系统。其github地址为:https://ninja-build.org/ Ninja源码安装 构造Ninja可使用CMake或python,需要先安装re2c: 安装re2c。下载地址:http://re2c.org/index.html tar -xvzf re2c-1.0.3.tar.gz cd re2c-1.0.3/ au

  • Ninja是类似make的编译工具,make工具比较复杂,Ninja相比make更关注编译速度,小巧高效,LLVM、CMake、chrome使用Ninja编译。 安装 下载官网二进制 https://github.com/ninja-build/ninja/releases 源码编译 生成ninja可执行文件 git clone git://github.com/ninja-build/ninj

 相关资料
  • 问题内容: 我将很快开始一个新的C++项目(它可能也包含一些C组件),并且我正在寻找一个现代的,具有工业实力的(即非beta)构建系统。该软件将由3-5个开发人员在3-5年内创建,并将在Linux上运行(稍后 可能 会支持Mac OS X和Windows )。我正在寻找一种比例如具有更好的可理解性,易用性和可维护性,但仍足以处理复杂项目的功能。首选开源软件。 我开始寻找到,,和到目前为止,喜欢的功

  • 13. 构建系统 强烈建议您选择一个支持依赖管理的构建系统,而且这个构建系统能够使用发布到“Maven Central”库中的组件。我们建议您选择Maven或Gradle。Spring Boot有可能与其他构建系统(例如Ant)一起工作,但是其他构建系统不会得到特别好的支持。

  • 强烈建议您选择支持依赖关系管理且可以使用发布到“Maven Central”存储库的artifacts的构建系统。 我们建议您选择Maven或Gradle。 可以让Spring Boot与其他构建系统(例如Ant)一起工作,但它们并没有得到特别好的支持。

  • jQuery 是一个非常优秀的 JavaScript 框架,而且还有相当多的插件。其中的一些UI插件也相当的给力,比如 Ninja UI,是一款界面插件,使用它将能给你的项目增色不少。此插件包含有幻灯,智能提示等常见的效果。 目前的文档还不是很全,但是官方提供的例子已经很详细了,所以也是很容易使用的。 在线演示:http://ninjaui.com/examples

  • Ninja Cookie 是一款可以自动帮你处理网站 cookie 弹出横幅的浏览器扩展程序,与 Chrome、Firefox、Opera 和 Edge 兼容。 前提条件 # npm install -g webextension-toolbox 构建 $ npm install$ webextension-toolbox build <vendor> <vendor>是 chrome, fire

  •  _______  .___ _______        ____.  _____    \      \ |   |\      \      |    | /  _  \   /   |   \|   |/   |   \     |    |/  /_\  \ /    |    \   /    |    \/\__|    /    |    \\____|__  /___\____|