dpdk动态库编译和交叉编译(含未定义CPU型号交叉编译方法)

本文详细介绍了如何将DPDK编译为动态库libdpdk.so,包括修改配置文件、设置编译选项,并提供了交叉编译的步骤,如创建对应CPU型号的配置、make defconfig以及使用T参数编译。特别强调了dpdk编译时涉及的内核目录设置和numactl依赖。
摘要由CSDN通过智能技术生成

一、dpdk编译

1.dpdk默认编译成静态库

make install T=x86_64-native-linuxapp-gcc DESTDIR=build -j

2.dpdk编译成动态库

修改./config/common_base文件
CONFIG_RTE_BUILD_SHARED_LIB=y
然后编译
make install T=x86_64-native-linuxapp-gcc DESTDIR=build -j

就会生成100个lrte_xxx.so文件了

3.编译链接成一个动态库libdpdk.so

改动范围:

需要修改4个mk文件
rte.lib.mk: 设置编译选项为-fPIC
rte.sdkbuild.mk: 生成lrte_xxx.a或者lrte_xxx.so文件,链接生成libdpdk.so
rte.app.mk: dpdk自带的应用和example由链接多个lrte_xxx.a改为链接libdpdk.so

执行步骤:
1.启用链接共享库的宏
  echo 'CONFIG_RTE_LINK_SHARED_LIB=y' >> ./config/common_base
2.设置编译选项
	sed -i '/# Copyright(c) /a\ifeq ($(CONFIG_RTE_LINK_SHARED_LIB),y)\nCFLAGS += -fPIC\nendif'  ./mk/rte.lib.mk
3.根据链接宏区分决定是否链接生成libdpdk.so
	sed -i '/-include /a\ifeq ($(CONFIG_RTE_LINK_SHARED_LIB),y)\ncombined_mk=rte.combinedlib-shared.mk\nelse\n combined_mk=rte.combinedlib.mk\nendif' ./mk/rte.sdkbuild.mk 
	sed -i 's/mk\/rte.com
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值