服务器上曾经装过很多版本的dpdk,此时如果编译某个程序出现奇怪错误的时候不由得会怀疑是不是dpdk版本的问题= =
令人吃惊的是,网上搜了一圈居然没有一个简单直接的方法能够直接使用,于是自己实验了一下摸索了一个方法出来:
较新版本的dpdk都使用pkg-config管理其各种库(即lib_rte*.so),而pkg-config使用.pc文件中的相关信息。dpdk的存储文件一般存储在/usr/local/lib/x86_64-linux-gnu/pkgconfig
下。
$ ls /usr/local/lib/x86_64-linux-gnu/pkgconfig
libdpdk-libs.pc libdpdk.pc
此时可以简单输出这两个文件中的内容,或使用pkg-config输出其版本:
$ pkg-config --modversion libdpdk
19.11.10
$ pkg-config --modversion libdpdk-libs
21.05.0
发现libdpdk-libs对应的21.05才是正确的dpdk版本,而19.11.10可能是dpdk其他组件的版本,目前没搞清楚,有时间给mailing list发个邮件问问。