DPDK编译成动态库,应用程序检测不到端口的问题

把DPDK由静态库方式改为编译成动态库后,原本正常的应用程序就不能运行了。
在初始化的时候,rte_eth_dev_count()总是返回0,而用dpdk_nic_bind.py --status查看端口是绑定成功的。

DPDK默认是编译成静态库的,改成动态库只需要把common_linuxapp文件中CONFIG_RTE_BUILD_SHARED_LIB=n修改成CONFIG_RTE_BUILD_SHARED_LIB=y就行了。

DPDK编译成动态库后,PMD的各个驱动就单独编译成了一个个的.so文件,而在应用程序中没有指定需要链接的.so文件,因此就导致了检测不到端口的问题。

PMD有好几种驱动,为了更好的移植性,建议在Makefile中指定链接所有驱动的.so文件,
LDLIBS += -lrte_pmd_e1000 -lrte_pmd_i40e -lrte_pmd_ixgbe

如果应用运行在虚拟机环境的话,还需要指定librte_pmd_virtio_uio.solibrte_pmd_vmxnet3_uio.so

时间: 2024-08-29 08:24:39

DPDK编译成动态库,应用程序检测不到端口的问题的相关文章

Android导入第三方静态库.a编译成动态库.so

http://ikinglai.blog.51cto.com/6220785/1324985 在Android开发的时候,经常会使用到用c或c++编写的第三方的静态库.如果有源码的话,可以直接跟你自己的代码一去编译成动态库so,但是如果没有源码的话,你就必须在自己的动态库so里面将别人生成好的静态库导入进来一起编译了.我在编译的时候遇到了不少问题,我觉得有必要进行总结一下. 下面我以一个简单的实际例子来讲解如何在动态库中导入静态库. 静态库中的源代码有两个文件:static.h, static.

表格树控件QtTreePropertyBrowser编译成动态库(设计师插件)

目录 一.回顾 二.动态库编译 1.命令行编译动态库和测试程序 2.vs工具编译动态库和测试程序 3.安装文档 4.测试文档 三.设计师插件编译 1.重写QDesignerCustomWidgetInterface 2.添加到插件列表 3.拷贝生成的dll 4.重启Qt Designer 四.多说一句 五.相关文章 一.回顾 上一篇文章超级实用的表格树控件--QtTreePropertyBrowser讲了怎么去编译QtTreePropertyBrowser库,并且可以简单实用.由于我下载的库是基

将静态库制作成动态库

一.系统说明 Ubuntu12.04TLS 64位 二.制作静态库 (1)编写需要制作成静态库的程序(根据实际情况进行编写,这里只是一个简单例子)     //bar.h              #ifndef _BAR_H     #define _BAR_H          void bar(int i);          #endif     //bar.c     #include <stdio.h>     #include <stdlib.h>     #incl

将TCP 和UDP封装成动态库

my_socket.h #ifndef __MY_SOCKET_H__ #define __MY_SOCKET_H__ #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #in

Linux下gcc编译控制动态库导出函数小结

Linux下gcc编译控制动态库导出函数小结 来源 https://www.cnblogs.com/lidabo/p/5703890.html 根据说明文档“How To Write Shared Libraries"介绍, 有四种方法: 1. 在方法声明定义时,加修饰:__attribute__((visibility("hidden"))) 就是说将不公开的函数都加上这个属性,没加的就是可见的 2. gcc 在链接时设置 -fvisibility=hidden,则不加 v

iOS开发-编译使用动态库

bogon:AlipaySDK.framework loyinglin$ lipo -info AlipaySDK Architectures in the fat file: AlipaySDK are: i386 x86_64 armv7 armv7s arm64 bogon:lib loyinglin$ lipo -info libssl.a Architectures in the fat file: libssl.a are: armv7 armv7s i386 x86_64 arm6

编译lua动态库

编译动态库,静态库参考https://blog.csdn.net/yzf279533105/article/details/77586747 centos默认安装了lua5.1,使用rpm删除,yum不能用了并报错: 所以,重新编译了lua5.1的so库,并拷贝到/lib64目录下,搞定! 原文地址:https://www.cnblogs.com/thingk/p/9869902.html

cmake--生成--动态库

一, 目录结构 ├── CMakeLists.txt├── include│      └── shared│              └── Hello.h└── src         ├── Hello.cpp         └── main.cpp * link:CMakeLists.txt[] - Contains the CMake commands you wish to run * link:include/shared/Hello.h[] - The header file

libpomelo2在linux下编译android动态库libjpomelo

参考文章如下: http://nodejs.netease.com/topic/540702e0898634292cd0a588 https://github.com/NetEase/libpomelo2 编译libjpomelo.so耗费了2天多的时间,资料很少,期间走了很多弯路,这里记录下. 1.官网下载libpomelo2源代码. 2.准备android ndk 10的包,我ubuntu是32位的,所以下载的是android-ndk32-r10b-linux-x86.tar.bz2