一、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