我很难将我的驱动程序移植到不同的linux发行版中,因为它们的libudev版本不同。
许多linux发行版确实有不同的libudev版本,而且libudev以在不更改其“soname”的情况下破坏它们的接口而闻名。
因此,我们已经为udev版本编写了一个包装器,该包装器库确实使用了'pkg-config‘向导的udev版本。但是现在,当我在像Kali Linux这样的不同发行版中运行我的驱动程序时,我知道'pkg-config‘实用程序并不存在于一些linux发行版中,比如"Kali linux“。
现在,我的驱动程序无法运行,因为它依赖于'pkg-config‘实用程序,在'Kali Linux’中找不到它。如果不使用“pkg-config”实用程序,就无法确定libudev版本。即使我强迫我的客户端安装'pkg-config‘实用程序,一些linux系统也没有*.pc文件,所以它也失败了。
对这个问题有什么替代办法吗?可以通过搜索库中声明的函数来猜测libudev版本吗?这是我目前脑子里唯一的方法。
提前谢谢。
发布于 2016-10-10 02:25:30
因为libudev和pkg都存在于实时发行版中。但它的名字已经改了。现在你必须调用。
pkg-config --modversion udev而不是'pkg-config -modversion libudev‘,这是对最新版本的raspbian,kali和Ubunu发行版,似乎是基于debian的。
更新:我喜欢另一个没有pkg-config的发行版,在这种情况下,有一个叫做udevadm的工具,它可以用来阅读它的libudev版本。
which udevadm
if [ $? -eq 0 ]; then
UDEV_VERSION=`udevadm --version`
fihttps://stackoverflow.com/questions/39825855
复制相似问题