如何动态确定libudev版本

三敦达米卡(Sandun Dhammika)

我面临将我的驱动程序移植到不同的Linux发行版中的困难,因为它们的libudev版本是不同的。

许多Linux发行版确实具有不同的libudev版本,并且libudev以中断其接口而未更改它的“ soname”而闻名。

因此,我们为udev版本编写了一个包装器,并且该包装器库确实通过“ pkg-config”向导使用了udev版本。但是现在,当我在不同的发行版(如Kali Linux)中运行驱动程序时,我知道在某些Linux发行版(如“ Kali linux”)中不存在“ pkg-config”实用程序。

现在,我的驱动程序无法运行,因为它依赖于'Kali Linux'中找不到的'pkg-config'实用程序。而且,如果不使用“ pkg-config”实用程序,就无法确定libudev版本。即使我强迫我的客户端安装“ pkg-config”实用程序,某些linux系统也没有* .pc文件,因此它也会失败。

这个问题有其他选择吗?通过尝试搜索该库中声明的函数可以猜测libudev版本吗?这是我目前脑海中唯一的方法。

提前致谢。

三敦达米卡(Sandun Dhammika)

对于libudev一个pkg-config的事实存在于实时发行版中。但是它的名字已经改变了。现在您必须调用。

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`
fi

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章