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

Meson与Ninja

本文部分内容参考:

meson ninja 简介_旺仔小馒头づ的博客-CSDN博客,

Meson首页、文档和下载 - 构建系统 - OSCHINA - 中文开源技术交流社区,

Ninja首页、文档和下载 - 小而快的构建系统 - OSCHINA - 中文开源技术交流社区,

特此致谢!

一、简介

1. Meson简介

Meson是用Python语言开发的构建工具,编译需要Ninja(用C++实现)命令。Meson 旨在开发最具可用性和快速的构建系统。Meson提供简单但强大的声明式语言用来描述构建。原生支持最新的工具和框架,如 Qt5 、代码覆盖率、单元测试和预编译头文件等。利用一组优化技术来快速编译代码,包括增量编译和完全编译。

Meson是一个跨平台的构建系统,设计为尽可能的快速和用户友好。它支持许多语言和编译器,包括GCC、Clang和Visual Studio。其生成定义是以一种简单的非图灵完备的DSL编写的。

2. Ninja简介

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

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

Ninja包含描述任意依赖图所需的最基本功能,它缺乏语法使得无法表达复杂的决策;相反,Ninja旨在与生成其输入文件的单独程序一起使用。生成器程序(如 ./configure在autotools项目中找到的)可以分析系统依赖性并尽可能多地做出尽可能多的决策,以便增量构建保持快速。超越自动工具,甚至构建时决定。比如 “应该使用哪个编译器标志?” 或 “应该构建调试或发布模式二进制文件?”属于.ninja文件生成器。

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

二、构建、编译和安装

1. 使用Meson进行构建(build)

通过meson build命令进行系统构建。meson build(相当于configure),会在build目录下生成build.ninja文件(相当于Makefile)和compile_command.json文件。

前提:使用meson构建前相应的源码需要存在meson.build构建描述文件。

2. 使用Ninja进行编译

构建完成后需要编译,使用ninja -C build(相当于make)命令进行编译。

3. 使用Ninja进行安装

编译完成后需要安装,使用ninja -C build install(相当于make install)命令进行安装。


http://www.kler.cn/a/3743.html

相关文章:

  • 京华春梦,守岁这方烟火人间
  • VS Code AI开发之Copilot配置和使用详解
  • Java - WebSocket
  • 上位机工作感想-2024年工作总结和来年计划
  • 【C++】C++11
  • Syncthing在ubuntu下的安装使用
  • 蓝桥杯刷题冲刺 | 倒计时16天
  • 低代码开发:助力企业高效实现数字转型的一大利器
  • 个人简历html网页代码(使用chatgpt完成web开发课的实验)
  • 一文学会 Spring MVC 表单标签
  • 【C语言蓝桥杯每日一题】—— 货物摆放
  • 【Vue3】模板语法
  • centos7.*系统下yum安装mysql8
  • 瑟瑟发抖吧~OpenAI刚刚推出王炸——引入ChatGPT插件,开启AI新生态
  • Spring源码面试最难问题——循环依赖
  • AI真的快让我们失业了,从ChatGPT到Midjourney
  • GPT免费网站分享(持续更新)
  • Token原理
  • 【JaveEE】多线程之阻塞队列(BlockingQueue)
  • 13从零开始学Java之数据类型之间的自动、强制与隐含强制类型转换详解
  • 低代码开发的未来~
  • 100天精通Python丨基础知识篇 —— 03、Python基础知识扫盲(第一个Python程序,13个小知识点)
  • 九月九日忆八股
  • iOS 项目嵌入Flutter 运行
  • Linux 入门教程||Shell 教程||Shell 数组||Shell 运算符
  • BCSP-玄子JAVA开发之JAVA数据库编程CH-06_MySQL数据库企业开发技术