前言:
现时兄弟们对“centos7安装ninja”大体比较关心,各位老铁们都需要知道一些“centos7安装ninja”的相关资讯。那么小编在网络上收集了一些关于“centos7安装ninja””的相关资讯,希望兄弟们能喜欢,同学们一起来了解一下吧!一、简介
本来打算给大家介绍一下DPDK的编译步骤,发现新版本的DPDK编译工具已经推荐使用meson+ninja了, 为了咱能在一个频道上愉快的学习,干脆决定先和大家研究下meson+ninja。
meson 是一个类似 CMake 的编译工具. 包括 DPDK, QEMU 等很多项目都已经将编译系统转为 meson+ninja。 所以本文主要介绍如何用 meson+ninja 编译 C 代码工程。希望大家能认真学习,毕竟这套编译工具有可能成为未来开源项目的标配。
网上传言这一套编译工具具备以下卖点:
支持多种操作系统, 如 Linux, macOS, Windows支持多种编译器, 如 GCC, Clang, Visual Studio 等支持多种编程语言, 包括 C, C++, D, Fortran, Java, Rust语法可读性好, 而且是对用户友好的非图灵完备(non-Turing complete) DSL支持多种操作系统及裸机(bare metal)的交叉编译完整编译或增量编译速度很快built-in multiplatform dependency provider that works together with distro packages
大家看看就好,不必较真。
二、环境搭建(软件安装)
东西好不好,用了才知道,光说不练,有王婆卖瓜之嫌。这次给大家演示用的linux系统版本是CentOS Linux release 7.6.1810 (Core)。顺便给大家介绍下centos 系统怎么查看是哪个版本的,直接上图吧。
大家输入上图红色框命令,所见即为自己centos系统的版本号。言归正传,使用centos 7.6搭建meson+ninja编译环境,主要依赖三个rpm包:
python3.6ninja-buildmesonpython3安装
直接使用yum进行安装,输入下图红色框命令并回车即可(当然机器得能上网才行)。回车后大家的结果可能和下图稍有不同,是因为我的机器已经安装过python3了。
ninja rpm包安装
下载ninja-build rpm包:加微信ieee2000从我这里拷贝或者直接从这个网站下载,使用下图红色框命令并回车安装。大家的显示结果可能和我的不太一致,是因为这个我也之前安装过了。
meson rpm包安装
下载meson rpm包:加微信ieee2000从我这里拷贝或者直接从这个网站下载,使用下图红色框命令并回车安装。大家的显示结果可能和我的不太一致,是因为这个我也之前安装过了。
三、测试验证
创建c源文件
前面一大堆操作努力,就是希望这个环节可以正常使用。下面咱一起验证下这个环境搭好没。我们先创建一个helloworld.c文件,作为我们的项目工程文件,当然,这篇文章是想给大家介绍下meson+ninja,helloworld.c就一切从简了,内容如下:
运行时我们只是简单的打印一下hello world即可。
创建编译配置文件
接着咱创建编译配置文件 meson.build。要使用 meson, 必须在源码根目录编写一个 meson.build 文件,内容如下:
执行meson build
在c源文件和编译配置文件相同的目录下执行meson build命令,如下图:
执行后我们发现目录下多了一个build文件夹,没错,接下来的故事就在这个build下面展开。
执行ninja-build
进入buld目录,我们先ls命令观察一下里边的情况如下图:
发现里边有个build.ninja文件,没错,这个也是上一步生成的。我们接着在build目录下执行ninja-build并回车,结果如图所示:
看到没,咱们最终的可执行文件test1已经生成了,如上图所示。输入下图红色框命令验证一下是不是我们的c代码希望的结果。
果然,hello world打印到屏幕上了。全流程完,简单不。
四、总结
meson.build常用写法
project
指定工程名和编程语言,如
project('test','c')
executable
指定build target为可执行程序,如
executable('hello','test.c')
可以用数组形式指定多个源码文件,如
srcs = ['a.c','b.c','test.c']
executable('hello',srcs)
library
指定build type为库,可以通过配置指定要生成静态库,动态库,或者两者都有,
project('shared lib','c')
library('mylib','source.c')
转自微信公众号IEEE,可关注公众号阅读原文。
标签: #centos7安装ninja