dpdk编译-meson版

发布时间 2023-11-27 14:38:26作者: toong

 

1  依赖python3的elftools,没有的话可以这样装

python3 -m pip install pyelftools

2  在dpdk根目录,使用命令

meson setup -Dprefix=/home/tong/Code/dpdk-21.11.4/dest/ -Ddefault_library=static -Dprefer_static=true -Ddisable_drivers=net/mlx4 build

-Dprefix指明install的时候安装到哪里。

build时目录名。指定的编译目录

输入命令meson configure能查看所有的配置项。参数与含义。

3  清除编译配置,重新编译

meson setup --wipe build

或者直接把‘build’目录删除。

 

4 正式编译

先进入build目录,然后执行ninja

cd build
ninja

 

5 安装

还是在build目录下面

meson install

交付就安装到了,$prefix 指定的位置。没指的话,就在/usr/local/下面

 

6 APPmakefile

app可以用meson,也可以用makefile。下面用makefile,makefile用了pkg-config。

例子:https://elixir.bootlin.com/dpdk/v21.11.5/source/examples/l2fwd/Makefile

重点是这三行

PKGCONF ?= pkg-config
CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk)
LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk)
LDFLAGS_STATIC = $(shell $(PKGCONF) --static --libs libdpdk)

 

7  指定目录

我们这没有系统目录,所以pkg-config要指以下目录。ldconfig也需要。

7.1 通过环境变量指一下pkt-config

export PKG_CONFIG_PATH=/home/tong/Code/dpdk-21.11.4/dest/lib64/pkgconfig/

7.2 ldconfig

 

8  app编译

正常make