前提:
已经安装了 libudev-devel库。
并且编译选项有 -ludev
原因(第二种可能性更大,没有时间去重现分析):
1. 库的版本过低。
2. 编译的可执行程序使用了一个静态库,而这个静态库中使用了udev, 因此可能需要重新去编译一下这个静态库。
附常用操作:
判断是否安装通过查询
rpm -qa | grep libudev
# whereis libudev
libudev: /usr/lib64/libudev.so /usr/include/libudev.h
附查询某个文件所属库
rpm -qf /usr/lib64/libudev.so
上面命令根据实践,即使将链接指向的文件版本更换了,查询结果也一样。说明库的版本是记录在一个单独的文件中,而非从so或.h文件中解析而来。