【发布时间】:2017-08-01 12:31:58
【问题描述】:
我在将我的驱动程序移植到不同的 linux 发行版时遇到了困难,因为它们的 libudev 版本不同。
许多 linux 发行版确实有不同的 libudev 版本,并且 libudev 以在不更改其“soname”的情况下破坏其界面而闻名。
所以我们已经为 udev 版本编写了一个包装器,并且该包装器库确实使用“pkg-config”向导使用 udev 版本。但是现在当我在 Kali Linux 等不同的发行版中运行我的驱动程序时,我知道在某些 Linux 发行版中不存在“pkg-config”实用程序,如“Kali linux”。
现在我的驱动程序无法运行,因为它依赖于在“Kali Linux”中找不到的“pkg-config”实用程序。如果不使用“pkg-config”实用程序,我就无法确定 libudev 版本。即使我强制我的客户安装 'pkg-config' 实用程序,一些 linux 系统也没有 *.pc 文件,所以它也会失败。
这个问题的任何替代方案? 是否可以通过尝试搜索该库中声明的函数来猜测 libudev 版本?这是我目前想到的唯一方法。
提前致谢。
【问题讨论】:
-
我认为你的前提是错误的。 pkg-config 当然存在于 Kali linux 中。也许你没有安装它。
-
是的,我没有安装,我的意思是我使用的是实时版本 amd64
-
然后你应该使用 kali 中的包管理器安装 pkg-config 实用程序。
-
我已经试过了。在 apt-get update 之后,我可以安装“pkg-config”,但是由于缺少 *.pc 文件,新安装的 pkg-config 根本不会返回正确的版本。
-
那么你应该为libudev安装-dev包,这样你就得到了.pc文件