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.pswp.cn/diannao/88353.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/88353.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/88353.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Qt元對象系統實踐指南:從入門到應用

目錄 摘要 元對象系統核心概念 項目示例:動態UI配置工具 元對象系統在項目中的應用 1. 信號與槽機制 2. 動態屬性系統 3. 運行時反射能力 4. 屬性綁定與響應 實際項目應用場景 動態UI配置 對象序列化 插件系統 性能優化建議 結論 參考資料 摘要 本文…

Kafka 與其他 MQ 的對比分析:RabbitMQ/RocketMQ 選型指南(一)

消息隊列簡介 在當今的分布式系統架構中,消息隊列(Message Queue,MQ)扮演著舉足輕重的角色。隨著業務規模的不斷擴大和系統復雜度的日益提升,各個組件之間的通信和協同變得愈發關鍵 。消息隊列作為一種異步的通信機制…

[創業之路-441]:行業 - 互聯網+移動互聯網和大數據時代的100個預言:技術個性、商業變革、社會重構、文化娛樂、環境、教育、健康醫療、未來生活方式

目錄 一、技術革新 二、商業變革 三、社會重構 四、文化與娛樂 六、環境與可持續發展 七、教育與知識傳播 八、健康與醫療 九、倫理與法律 十、未來生活方式 十一、終極預言 結語 在移動互聯網和大數據時代,技術革新正以前所未有的速度重塑社會、經濟與文…

基于STM32單片機WIFI無線APP控燈亮度滅設計

基于STM32單片機控燈設計 (程序+原理圖+設計報告) 功能介紹 具體功能: 本設計由STM32F103C8T6單片機核心電路兩位白色高亮LED燈電路WIFI模塊ESP8266電路電源電路組成。 1、stm32實時監測wifi數據,解析數…

學會C++中的vector的基本操作

vector 是 C 標準庫中的一個動態數組類,它可以在運行時自動調整大小,非常適合用于處理大小不確定的集合。下面是 vector 的常見用法示例,幫助你更好地理解如何使用它。 注意:所有用數組完成的任務都可以用vector完成。 1. 引入頭…

AI時代工具:AIGC導航——AI工具集合

大家好!AIGC導航是一個匯集多種AIGC工具的平臺,提供了豐富的工具和資源。 工具功能?: 該平臺整合了多樣的AIGC工具,涵蓋了繪畫創作、寫作輔助以及視頻制作等多個領域。繪畫工具能夠生成高質量的圖像作品;寫作工具支持從構思到潤色的全流程寫…

java-SpringBoot框架開發計算器網頁端編程練習項目【web版】

今天分享一個使用springboot 寫一個 前后端不分離的項目,網頁計算器,來熟悉springboot框架的使用。 java版本:8。 springboot:2.6.13 使用的技術是: Java Spring Boot Thymeleaf HTML/CSS/JS 構建的 Web 端簡約按鈕…

linux操作系統的軟件架構分析

一、linux操作系統的層次結構 1.內核的主要功能 1)進程管理 2)內存管理 3)文件系統 4)進程間通信、I/O系統、網絡通信協議等 2.系統程序 1)系統接口函數庫,比如libc 2)shell程序 3)編譯器、編輯…

淺談Java對象在內存中的存儲形式

我們知道計算機以二進制的方式存儲數據,以 64 位虛擬機為例,Java 對象在內存中的存儲形式為: 開頭是 8 個字節的 markword,用于標記對象的狀態。(也就是一個 long 型數據的大小。不妨記作對象頭里有一個長長的 markwo…

Android 開發問題:Wrong argument type for formatting argument ‘#2‘ in info_message

<string name"info_message">name: %1$s, age: %2$d</string>String str getString(R.string.info_message, "zs");在 Android 開發中&#xff0c;上述代碼&#xff0c;出現如下警告信息 Wrong argument type for formatting argument #2 in…

Vue+spring boot前后端分離項目搭建---小白入門

首先&#xff0c;介紹一下軟件準備工作 1.vscode 2.maven 3.vue搭建&#xff1a;node.jsyarnvite 一.后端搭建 打開vscode,建立一個springboot項目&#xff0c;參考鏈接&#xff1a;sping boot項目搭建 建立一個項目&#xff0c;目錄結構如下&#xff1a; helloController.java…

“蘇超”拉動周末消費,抖音生活服務:比賽城市迎來普遍消費上漲

“蘇超”爆火&#xff0c;有力拉升了緊隨賽程的周末消費。抖音生活服務數據顯示&#xff0c;剛剛過去的周末&#xff08;6月21日至22日&#xff09;&#xff0c;江蘇商圈休閑運動團購訂單消費環比增長225%&#xff0c;到店消費金額環比增長181%。雖然幾個比賽城市周末天氣欠佳&…

使用python開發一個exe版本的計算器項目練習

最近在練習python開發軟件&#xff0c;就開發了一個 客戶端版的 計算器。先給大家看一下 做出來的樣子 python版本&#xff1a;3.8 以上 主要是 使用 import tkinter as tk 這個庫來實現圖形界面開發 代碼還是比較簡單的&#xff1a; # 創建主窗口 root tk.Tk() root.title…

uniapp開發小程序,導出文件打開并保存,實現過程downloadFile下載,openDocument打開

uniapp開發小程序&#xff0c;導出文件打開并保存 實現思路 1、調用請求獲取到后端接口返回的下載文件的url路徑 &#xff08;注意必須是https的路徑&#xff0c;域名需要配置在微信小程序后臺的合法域名里面&#xff09; 2、使用 uni.downloadFile 方法 &#xff08;下載文件…

vue2中前端實現圖片裁剪上傳到服務器

在 Vue 2 中實現圖片裁剪并上傳到服務器&#xff0c;你可以結合使用 Cropper.js 來進行圖片裁剪&#xff0c;并通過 Axios 或者其他 HTTP 客戶端庫將裁剪后的圖片上傳至服務器。以下是一個基本的實現步驟和示例代碼&#xff1a; 步驟 安裝依賴&#xff1a;你需要安裝 cropperj…

C# 網絡編程-關于HttpWebRequest使用方式(二)

項目開發用到數據請求時候&#xff0c;會用的到HttpWebRequest的請求方式&#xff0c;主要涵蓋GET、POST、PUT、DELETE等方法 一、HttpWebRequest簡介 HttpWebRequest是.NET Framework中用于發送HTTP請求的核心類&#xff0c;適用于構建HTTP客戶端。它支持GET、POST、PUT、DE…

git變更記錄

目錄 wvp-ui -new Dji 10.60.2.175:8000上的編譯 個人拉分支 目前約定2025-06-25 wvp-ui -new branch new BASE_URL /new/ ci-cd : wvp-newui Config [Jenkins] 禁 用 10.30.2.8 ssh 10.30.2.8 /home/dualven/wvp-server/deployNewUi.sh Dji 主分支的構建&#xf…

前端如何禁止用戶復制?

禁用右鍵菜單 document.addEventListener(contextmenu, function(e) {e.preventDefault(); });禁用快捷鍵&#xff08;CtrlC/X/A等&#xff09; document.addEventListener(keydown, function(e) {if (e.ctrlKey && [c, x, v, a].includes(e.key.toLowerCase())) {e.…

阿里云無影:開啟云端辦公娛樂新時代

阿里云無影云電腦&#xff1a;打破傳統束縛&#xff0c;暢享云端自由 在數字化浪潮洶涌澎湃的當下&#xff0c;云計算技術持續革新&#xff0c;為我們的工作與生活帶來前所未有的變革。阿里云作為云計算領域的佼佼者&#xff0c;推出的無影云電腦無疑是一顆璀璨的明星&#xf…

Windows 和 macOS 串口調試軟件

在 Windows 和 macOS 上&#xff0c;你可以使用以下串口調試軟件來查看開發板的打印信息。以下是常見且好用的工具推薦&#xff1a; Windows 推薦工具 PuTTY 免費、輕量級&#xff0c;支持串口&#xff08;COM&#xff09;和 SSH/Telnet下載地址&#xff1a;https://www.putty.…