dpdk编译-meson版
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