怎样使用ninja编译系统编译我们的程序?

  • 使用ninja

    • 配置自己的环境来使用ninja
  • 构建程序
  • Android使用ninja
  • Windows使用
    • 调试
    • 不使用VS
  • 技巧
  • 问题

Ninja的原意是忍者,忍者神龟的忍者,这里被google拿来用在他们的编译系统上,目标是替代make之类的构建器,因为他们觉得其它的构建器太慢了,为此他们做过对比,对于chrome之类的拥有几万个文件的超大程序来说,用ninja的话,几乎立即开始编译,而make几乎要等上个10秒钟才开始编译。

Ninja的另外一个特点,其实不是他娘的特点,就是独立于编译系统的输入文件,我想问下google大神,难道cmake的CMakeList.txt不是吗?

Google把别的编译系统比作高级语言,而把自己努力设计成更底层的汇编器,这样才能从指令层面来优化编译性能。 Ninja的的构建(build)文件是给人看的,但不是特别方便于手写。这些特点允许她快速评估递增构建。毕竟不是每次都要从头开始。

Ninjia的底层特性使得她更适合嵌入功能强大的构建系统。 通过gyp(哈哈,拿来的CMakeLists.txt),ninja可以构建Chrome和v8, node.js等等项目。通过cmake, ninja能够构建LLVM(虚拟机啊)以及KDE桌面等等。

怎样获取ninja?

github上有:git clone git://github.com/martine/ninja.git

或者我们在debian/ubuntu上可以这样:apt-get install ninja-build

本文属原创,转载请注明出处,违者必究

关注微信公众平台:程序员互动联盟(coder_online),你可以第一时间获取原创技术文章,和(java/C/C++/Android/Windows/Linux)技术大牛做朋友,在线交流编程经验,获取编程基础知识,解决编程问题。程序员互动联盟,开发人员自己的家。

部分参考:https://code.google.com/p/chromium/wiki/NinjaBuild

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-09 23:04:23

怎样使用ninja编译系统编译我们的程序?的相关文章

如何使用ninja编译系统编译我们的程序?

使用ninja 配置自己的环境来使用ninja 构建程序 Android使用ninja Windows使用 调试 不使用VS 技巧 问题 Ninja的原意是忍者,忍者神龟的忍者.这里被google拿来用在他们的编译系统上.目标是替代make之类的构建器,由于他们认为其他的构建器太慢了,为此他们做过对照,对于chrome之类的拥有几万个文件的超大程序来说,用ninja的话,差点儿马上開始编译,而make差点儿要等上个10秒钟才開始编译. Ninja的另外一个特点,事实上不是他娘的特点,就是独立于编

在64位linux上编译32位程序

ld指令有一个选项:--oformat output_format,用于指定输出文件的格式.输入文件./kernel/kernel.o等是elf32格式,当前系统是64位,而ld默认生成的文件格式是elf64-x86-64:因此会出现"ld: warning: i386 architecture of input file `./kernel/kernel.o' is incompatible with i386:x86-64 output"这样的提示.之前,将系统从三墩转移到我自己的

linux下使用gcc编译运行C程序

gcc(GNU Compiler Collection)是Linux下最常用的C语言编译器,是GNU项目中符合ANSI C标准的编译系统,能够编译用C.C++和Object C等语言编写的程序.  在linux系统中,常见的使用方法有两种,如下: gcc -o out in1 in2 //gcc编译以及链接(对in1文件和in2文件进行编译生成out.bin文件,"-o":表示生成可执行文件) gcc -c out in1 in2 // gcc编译不链接(对in1文件和in2文件文件进

亲测VS2010纯静态编译QT4.8.0,实现VS2010编译调试Qt程序,QtCreator静态发布程序(图文并茂,非常详细)

下载源代码,注意一定是源码压缩包如qt-everywhere-opensource-src-4.8.0.zip,不是Qt发布的已编译的不同版本的标准库如qt-win-opensource-4.8.0-vs2010.exe,这些版本都只是动态编译的,不是我们所需要的.只有用源码包才能做真正的纯静态编译,如果用Qt官网已编译的标准库.exe文件进行编译,有可能出现各种错误,而且编译后的文件巨大,我当时就在这里绕了很大的弯子,请童鞋们注意啦!!可能有些老鸟会笑话,但我本着最严肃的态度告诉菜鸟们,上网查

减小Delphi XE5编译出来的程序体积

. 默认Delphi XE, XE2, XE3,XE4,XE5, XE6 ... 编译出来的程序体积很大. 一般用两个方法可以很大程度上减少程序体积. 一.在工程中用编译指令禁用RTTI 禁用的方法很简单,就是要在工程 的Uses语句前添加下面的定义就可以了: { Reduce EXE size by disabling as much of RTTI as possible (delphi 2009/2010) } {$IF CompilerVersion >= 21.0} {$WEAKLIN

使用VS+VisualGDB编译调试Linux程序

Linux程序开发变得越来越多,越来越多的程序.产品需要跨平台,甚至有些开源项目只支持Linux平台,所以掌握Linux开发变得越来越重要. 但是对于习惯了Windows下的开发,使用了VS这个宇宙第一IDE后,觉得Linux下的纯命令行开发调试,还是有些不习惯,效率有些低(大神除外).那么能不能用VS来开发调试Linux程序呢,经过各种查找,找到了VisualGDB这个神奇的插件,通过VS+VisualGDB就可以编译调试Linux程序. 下面我们来看一下创建demo的过程吧. 配置虚拟机 V

cocos2d-x v3.0的window平台搭建和编译成andriod程序

首先添加这个地址到系统环境变量,path 然后打开CMD,输入如下语句 现在就可以创建一个新项目了 这样一个空的cocos2d-x v3.0的项目就创建好了 接下来编译andriod程序 先在系统环境变量中添加一个NDK_ROOT 然后打开cmd 然后就开始编译了 接下来打开ADT中的eclipse 再添加andriod文件夹到工程里 cocos2d-x v3.0的window平台搭建和编译成andriod程序,布布扣,bubuko.com

使用Eclipse编译运行MapReduce程序 Hadoop2.6.0_Ubuntu/CentOS

文章来源:http://www.powerxing.com/hadoop-build-project-using-eclipse/ 使用Eclipse编译运行MapReduce程序 Hadoop2.6.0_Ubuntu/CentOS 本教程介绍的是如何在 Ubuntu/CentOS 中使用 Eclipse 来开发 MapReduce 程序,在 Hadoop 2.6.0 下验证通过.虽然我们可以使用命令行编译打包运行自己的MapReduce程序,但毕竟编写代码不方便.使用 Eclipse,我们可以

VS2012编译64位程序

安装64位操作系统不是编译64位程序的必要条件,关键是要装64位程序的编译器. 1. 选择“Build” – “Configuration Manager”菜单,打开配置管理器.点击新建解决方案平台. 2. 选择“x64”平台,点击确定按钮. 3. 这时候配置管理器中的平台已经改成刚才选择的x64了,这时候编译出来的就是64位程序了.可以在工具栏的平台下拉框中快速切换目标平台. 注意:一个工程调用的另一个工程的DLL时,位数必须一致,即本工程要编译为64位,DLL也必须编译为64位.如果本工程要