dpdk安装入门

目前网上关于dpdk的介绍相对较老,已经不适合新版本的dpdk的安装了,新版本的dpdk安装使用了nijna

dpdk新版本安装:https://core.dpdk.org/doc/quick-start/

官方文档最权威:https://core.dpdk.org/doc/quick-start/

 

那首先需要安装Ninja: 文档https://blog.csdn.net/gentleliuyy/article/details/110766599

Ninja使用教程

软件简介

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

Ninja的目标是成为汇编程序。

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

Ninja包含描述任意依赖图所需的最基本功能。它缺乏语法使得无法表达复杂的决策。

相反,Ninja旨在与生成其输入文件的单独程序一起使用。生成器程序(如 ./configure 在autotools项目中找到的)可以分析系统依赖性并尽可能多地做出尽可能多的决策,以便增量构建保持快速。超越自动工具,甚至构建时决定,比如“我应该使用哪个编译器标志?” 或“我应该构建调试或发布模式二进制文件?” 属于 .ninja 文件生成器。

设计目标:

  • 非常快速(即即时)增量构建,即使对于非常大的项目也是如此。
  • 关于如何构建代码的政策很少。不同的项目和更高级别的构建系统对如何构建代码有不同的看法; 例如,应该在源代码旁边构建对象还是应该将所有构建输出放到一个单独的目录中?是否有一个“包”规则来构建项目的可分发包?通过尝试允许实施这些决策而不是选择来实现这些决定,即使这会导致更多的冗长。
  • 获取依赖关系是正确的,特别是使用Makefiles很难得到的情况(例如,输出需要对用于生成它们的命令行的隐式依赖;要构建C源代码,您需要使用gcc的 M 标志来实现标头依赖性)。
  • 当方便和速度发生冲突时,请选择速度。

一些明确的非目标

  • 手动编写构建文件的方便语法。 你应该使用另一个程序生成你的忍者文件。这就是我们如何回避许多政策决定。
  • 内置规则。开箱即用,Ninja没有例如编译C代码的规则。
  • 构建的构建时自定义。选项属于生成忍者文件的程序
  • 构建时决策能力,例如条件或搜索路径。做决定很慢。

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


软件安装

debian/ubuntu

apt-get install ninja-build

Centos

ninja需要依赖于re2c,否则编译是会报错,re2c是一款语法分析器,官网地址是:http://re2c.org/下载页面的安装说明都在:http://re2c.org/install/install.html,这里直接从源码安装最新版本

安装re2c:

yum install autoconf
git clone https://github.com/skvadrik/re2c
cd re2c./autogen.sh
./configure makemake install

以上如果没有报错的话安装完毕了,因为re2c作为基础依赖,所以这里采用默认安装,上面的安装说明页面也给出了详细的安装细节。

若报错:

Can't exec "aclocal": No such file or directory at /usr/share/autoconf/Autom4te/FileUtils.pm line 326.
autoreconf: failed to run aclocal: No such file or directory



错误1:

autoreconf: failed to run aclocal: No such file or directory

解决:

# centos 
yum install automake 

# ubuntu 
sudo apt install automake


错误2:

configure.ac:36: error: possibly undefined macro: AC_PROG_LIBTOOL

解决:

# centos 
yum install libtool 

# ubuntu 
sudo apt install libtool

如上,基本错误就不会在出现

然后可以安装ninja了,ninja官网地址:https://ninja-build.org/,github仓库地址:https://github.com/ninja-build/ninja,可以从github仓库克隆项目切换到release分支或者下载release包安装过程如下:

git clone https://github.com/ninja-build/ninja.gitcd ninja
  • github上有提供以下两种安装的命令:

在这里插入图片描述
这里我们采用python的安装方式,较为方便

./configure.py --bootstrap
  • 等待完成即可

现在可以执行./configure.py --help查看帮助,直接执行./configure.py --bootstrap进行编译,
编译完成之后,当前目录下会有ninja的可执行文件,执行 ./ninja -h 可以查看帮助

ninja比较精简,只需要一个可执行文件即可,现在可以做软链或者复制到/usr/bin下面就可以直接调用了,比如:

cp ninja /usr/bin/
  • 然后可以直接使用 ninja 命令,这样就安装好了。

使用

  • 编译命令:ninja
  • 清理:ninja -t clean

 

 

如上是ninja的源码安装方法,如下是meson和ninja的另一种安装的方法:

DPDK 20.11 已正式发布, 其中的编译机制做出了很大改动, 不再支持 make 方式, 只支持使用 meson 作为构建工具.
meson

http://mesonbuild.com/Getting-meson.html
https://github.com/mesonbuild/meson/releases

centos安装:

dnf install meson

python3 pip 安装:
pip3 install meson
pip3 install --user 安装到 $HOME/.local/bin 目录, 避免权限问题:

pip3 install --user meson
export PATH=$PATH:$HOME/.local/bin

ninja
https://ninja-build.org/
Fedora:
dnf install ninja-build

Download binary:
https://github.com/ninja-build/ninja/releases

可以直接参考官网的readme进行安装:https://github.com/mesonbuild/meson

python3 -m pip install meson

 

Ninja构建系统入门

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值