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

Meson介绍及编译Glib库

一.概述

1.Meson 的简介

Meson(The Meson Build System)是个项目构建系统,类似的构建系统有 Makefile、CMake、automake …。 Meson 是一个由 Python 实现的开源项目,其思想是,开发人员花费在构建调试上的每一秒都是浪费,同样等待构建过程直到真正开始编译都是不值得的。

因此,Meson 的设计目的是在用户友好的同时不损害性能,Meson 提供客户语言(custom language)作为主要工具,用户可以使用它完成项目构建的描述。客户语言的设计目标是简单(simplicity)、清晰(clarity)、简洁(conciseness),其中很多灵感来源于 Python 语言。

Meson 的另个一主要设计目的是为现代编程工具提供优秀的支持和最好的实现。这包括一些特性如:单元测试(unit testing)、代码覆盖率报告(code coverage reporting)、头文件预编译(precompiled headers)。用户不需要寻找第三方宏指令(third party macros)或编写 Shell 脚本来实现这些特性,Meson 可以开箱即用。

Meson 相比 CMake 来说,不仅仅支持 C/C++,还支持多种编程语言。

如今,很多项目都由 CMake 转向到了 Meson,例如 DPDK 和 Mapnik。

网址:https://www.cnblogs.com/RioTian/p/17984286

2.Ninja 的简介

项目开发中一般将 Meson 和 Ninja 配合使用,Meson 负责构建项目依赖关系,Ninja 负责编译代码。Ninja 是一个轻量的构建系统,主要关注构建的速度。它与其他构建系统的区别主要在于两个方面:一是 Ninja 被设计成需要一个输入文件的形式,这个输入文件则由高级别的构建系统生成;二是 Ninja 被设计成尽可能快速执行构建的工具。

3.Meson 的特性

支持多种平台,包括 Linux、macOS、Windows、GCC、Clang、Visual Studio 等

支持多种编程语言,包括 C/C++、D、Fortran、Java、Rust

支持在一个非常可读和用户友好的非图灵完整 DSL 中构建定义

支持很多操作系统和裸机进行交叉编译

支持极快的完整和增量构建而优化,而不牺牲正确性

支持与发行版包一起工作的内置多平台依赖提供程序

4.Meson 的依赖

Meson 是依赖 Python 与 Ninja 实现的,依赖的版本如下:

Python (version 3.6 or newer)

Ninja (version 1.8.2 or newer)

版本查看: Ninja --version

二.Meson 安装

1.Windows 平台

a)在 Meson GitHub Releases 网站(https://github.com/mesonbuild/meson/releases)下载 Windows 版的安装程序,如 meson-0.60.3-64.msi

b)双击 meson-0.60.3-64.msi 安装程序,按默认选项直接安装 Meson

c)在系统的 开始菜单栏 里,找到 Visual Studio 开发人员工具(Native Tools Command Prompt for VS xxxx),双击运行后,在 CMD 窗口内执行以下命令查看 Meson 和 Ninja 的版本

> meson --version

0.60.3

> ninja --version

1.10.2

2.通过 PyPi 安装

Meson 可以直接通过 PyPi 安装,但必须确保使用的是 Python3 的 pip,安装命令如下:

# pip3 install meson ninja

或者使用标准的 Python 命令安装 Meson

# 安装meson

# python3 -m pip install meson

# 安装ninja

# python3 -m pip install ninja

3.Debian/Ubuntu

# apt install -y meson ninja-build

4.Fedora/CentOS

# yum install -y meson ninja-build

# 或者

# dnf install -y meson ninja-build

三.使用Meson在windows平台编译Glib库

1.下载Glib库:https://gitlab.gnome.org/GNOME/glib/-/tree/2.84.2?ref_type=tags

2.编译Glib库(windows下实测ok)

tar xf glib-*.tar.gz                    # unpack the sources

cd glib-*                               # change to the toplevel directory

meson setup _build                      # configure the build

meson compile -C _build                 # build GLib

ninja -C _build install

3.注意:编译时需要连接外网,否则有些依赖包无法下载

http://www.lqws.cn/news/505567.html

相关文章:

  • 顺序表整理和单项链表01 day20
  • 对人工智能的厌倦感是真实存在的,而且它给品牌带来的损失远不止是参与度的下降
  • 【sklearn】K-means、密度聚类、层次聚类、GMM、谱聚类
  • Flutter 学习 之 mixin
  • CFDEM 介绍和使用指南
  • CUDA12.1+高版本pytorch复现Mtrans环境
  • FastMCP+python简单测试
  • 全面掌握 Nginx的功能和使用方法
  • Ingress-Nginx简介和配置样例
  • 最方便的应用构建——利用云原生快速搭建本地deepseek知识仓库
  • 程序猿成长之路之数据挖掘篇——聚类算法介绍
  • uniapp实现远程图片下载到手机相册功能
  • redis的安装及操作
  • 支持向量机(SVM):原理、实现与应用
  • Python核心库Pandas详解:数据处理与分析利器
  • 传输层协议TCP
  • 随机森林详解:原理、优势与应用实践
  • 【apache-maven3.9安装与配置】
  • C++ string类的操作
  • Python与Web3.py库交互实践
  • ref() 与 reactive()
  • Android中Navigation使用介绍
  • 跟着AI学习C#之项目实践Day5
  • 从0开始学习R语言--Day31--概率图模型
  • Blaster - Multiplayer P162-PXX
  • 系统性能优化-4 磁盘
  • 【Bluedroid】蓝牙启动之 bta_dm_enable 流程梳理 源码解析
  • 【AI落地应用实战】Chaterm:重新定义终端操作的AI智能工具
  • C# WinForm跨平台串口通讯实现
  • ffmpeg下载地址