dpdk扩展第三方静态库(自己的库)

时间:2024-03-25 21:28:01

创建新库的过程主要还是参考官网,辅助一些其他资料

首先给出我的环境变量和dpdk版本
dpdk-stable-18.05.1版本
export RTE_SDK=“自己的dpdk路径”
export RTE_TARGET=x86_64-native-linuxapp-gcc

根据官网文档,创建一个新库libfoo
官网文档第一步显示:
dpdk扩展第三方静态库(自己的库)
其实这一步我是没有看懂的,参照其他人的资料,在config目录中找到
defconfig_x86_64-native-linuxapp-gcc,配置文件的最后一行
dpdk扩展第三方静态库(自己的库)
刚开始我是这样配置的,但后来编译安装x86_64-native-linuxapp-gcc的时候报错了。所以我第一步不是根据官网配置的。
下面给出我的配置过程:
1、给配置文件:
在dpdk/config/common_base中增加libfoo的config
vim common_base
在common_base中增加如下图中红色框中部分。
dpdk扩展第三方静态库(自己的库)
2、在lib目录下创建一个源码子目录
mkdir libfoo
cd libfoo
touch foo.c
touch foo.h
3、编辑源码
vim foo.c
如下图所示,编辑保存。
dpdk扩展第三方静态库(自己的库)
vim foo.h
如下图所示,编辑保存
dpdk扩展第三方静态库(自己的库)
4、更新lib目录下的Makefile
vim Makefile
添加如下图中红色框中部分。dpdk扩展第三方静态库(自己的库)
5、为此库创建一个新的Makefile,例如,从librte_mempool库中复制
cp librte_mempool/Makefile libfoo
然后打开libfoo目录中的Makefile,如下:
dpdk扩展第三方静态库(自己的库)
把所有的rte_mempool都替换成foo
所有的LIBRTE_MEMPOOL都替换成LIBFOO
(删除了两行)
替换结果如下所示:
dpdk扩展第三方静态库(自己的库)
6、更新mk目录中的rte.app.mk文件,如下图所示,添加红色框中部分
dpdk扩展第三方静态库(自己的库)
7、编译安装
首先要将之前的安装删除
rm -rf x86_64-native-linuxapp-gcc
然后我选择的快速脚本安装
cd usertools
./dpdk-setup.sh
dpdk扩展第三方静态库(自己的库)
option:15
编译没有报错了。

最后查看一下新库是否创建成功
ls x86_64-native-linuxapp-gcc/include
在include目录中可以找到一个foo.h的文件,

ls x86_64-native-linuxapp-gcc/lib
在lib目录中可以找到一个libfoo.a的静态库文件,
证明新库创建成功。