(点击上方公众号,可快速关注)

CMake是C++事实上的标准构建生成器(Build generator),之所以叫生成器,是因为它通过分析CMakeLists.txt为构建系统生成真正的构建文件,如Makefile、VS的sln文件等。大部分上下文中,构建生成器跟构建系统指的是一回事。

CMake虽应用广泛,但难用程度和语法的迷惑程度远高于类Python语法的Meson,有兴趣的朋友的可以看下(https://mesonbuild.com/)。

Ninja是具体的构建系统,层次与Make对标,设计初衷:简单且快速。是很多现代构建生成器默认的构建系统,如上面提到的Meson。

Why Ninja ?

与make相比,主要是构建速度快,尤其是大项目,增量构建尤其明显。

安装

常用的方法,通过系统Linux的包管理器安装,或通过Python的pip【略】。在Centos中,可

yum install -y ninja-build

使用

我们一般不直接使用Ninja,而是通过CMake、Meson这类工具生成。

这里以CMake为例,假设之前的用法为【默认生成Makefile】:

$ cmake .. -DCMAKE_BUILD_TYPE=Debug
$ make

只要使用-G选项指定Ninja即可:

$ cmake .. -G Ninja -DCMAKE_BUILD_TYPE=Debug
$ ninja

CMake同时支持in-source build和out-of-source build,推荐out-of-source,好处是生成的构建文件不会“污染”项目的代码,而且单独一个目录,也方便在git等版本管理工具里排除。

【C++】小而快的Ninja相关推荐

  1. 10000+ gif表情包不是梦,get这一篇文就够了!!!小哥哥快到碗里来,再也不怕斗图没有表情包了

    10000+ gif表情包不是梦,get这一篇文就够了!!!小哥哥快到碗里来,再也不怕斗图没有表情包了 1. 依赖模块及安装 2. 查找网页规律 3. 源码 最近看的爬虫的博客太多,小小的学习了下.主 ...

  2. Google 开源的依赖注入库,比 Spring 更小更快!

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 来源:GinoBeFunny zhuanlan.zhihu.com ...

  3. 你还在观望吗?Creator3D小鲜肉《小鸭快跑》新鲜出炉!

    date: 2019-10-16 摘要 CocosCreator 的 3D 版本正式上线!激动干嘛? 愣着啊! KUOKUO 正好手里有个小鸭子模型,于是就把它做成了一个小游戏. 正文 风骚的走位 系 ...

  4. 华为游戏小程序快应用账号登录6004报错集合

    华为小程序快应用问题账号登录6004 总结常见的code码 华为技术的答复 转载请标明出处: https://dujinyang.blog.csdn.net/ 本文出自:[奥特曼超人的博客] 总结常见 ...

  5. 凡泰极客成为W3C成员并加入MiniApps工作组,将积极参与小程序快应用技术标准化进程

    过去,中国科技企业对国际互联网技术标准的贡献与影响甚微,早期的奠基性技术标准如HTTP.HTML.SSL等,均由欧美技术界引领.近期在WebRTC等技术标准中,开始出现中国企业的身影. 小程序快应用技 ...

  6. 小论快充(原理、协议、比较)

    手机快充,PD快充,125W超级快充--想必这些词或多或少都会听过吧. 在电池材质没有取得新突破之前,不断提升的快充技术也是符合当下节奏更快的生活的最佳选择. 但是你真的了解快充吗?快充是不是只需要一 ...

  7. 二值网络——开启小而快神经网络时代

    摘要:这种使用浮点计算的神经网络要求的大存储空间和大计算量,严重阻碍了其在手机.手表和移动机器人等设备上的应用.二值神经网络设法让计算主要在正1或负1间进行,几十倍地降低了网络大小和计算量,但一直以来 ...

  8. cocos creator 单机小驴快跑

    cocos creator 单机小驴快跑可以自行搭建项目. 演示地址:https://www.bilibili.com/video/av51569369/ 联系方式:QQ 1019429950

  9. 新时代的互联网打印—小马快印

    互联网打印在今天已经不是什么新鲜词汇了,但一直都没有发展起来.大多数人还是习惯于拿着U盘去打印店排队打印自己所需要的资料, 这样不仅费时费力,U盘插上那边的电脑也极容易中毒,另外不同的打印店,设备的不 ...

最新文章

  1. 物体检测中的Objectness是什么?
  2. AI机器学习实战の电磁智能车篇
  3. 【MYSQL】总结MySQL中对表内容的关联运算(join)
  4. oracle 600 侯,oracle在导入数据时报600错误的解决方法
  5. 为什么没人种植金丝楠木?
  6. 关于kinect的一些想法
  7. Educoder 机器学习 神经网络 第四关:使用pytorch搭建卷积神经网络识别手写数字
  8. UBUNTU16.04下Teamviewer的安装
  9. 大学生游戏静态HTML网页作业--美丽中国
  10. dp在约会上是什么意思_dp是什么意思网络术语 饭圈为什么喜欢用缩写
  11. python绘制三角函数图像_用python画三角函数
  12. CMYK,RGB颜色对照表
  13. mandriva urpm类命令
  14. 电脑插入U盘后里面的文件变成快捷方式解决办法
  15. ios实时卡顿检测和优化方案
  16. Python批量复制一个文件夹中的全部excel数据并粘贴至一个excel文件中-openpyxl模块
  17. 光线传媒副总裁刘同:我们为什么要读大学?
  18. cnn风格迁移_机器学习:利用卷积神经网络实现图像风格迁移 (一)
  19. Log4j 爆发“核弹级”漏洞、工信部力推开源软件发展、“龙腾计划”启动|开源月报 Vol. 02...
  20. 1-思维与系统-习题

热门文章

  1. 电源模块trim引脚
  2. QQ2012 Beta3-QQ2013 Beta1聊天协议剖析
  3. 【书评活动已开奖】年底总结ing?给你个机会补救一下今年的任务清单!
  4. 【毕业设计】天气数据分析系统 - python 大数据
  5. 一个工作了三年的社会人士与即将毕业的研究生对话:应届生什么时候准备找工作,如何准备?
  6. 疯狂python讲义学习日志11——并发编程
  7. 华为自研设备明年都将升级鸿蒙系统,华为杨海松:明年所有华为自研设备升级鸿蒙系统,将发布鸿蒙系统智能手机...
  8. python怎么加逗号_python – 什么是最简单的方法添加逗号到一个整数?
  9. Windows11 安装教程(ultraiso制作启动盘)
  10. android毕设论文谢辞,毕业论文谢辞