ld 找不到 udev

ld cannot find udev

我正在尝试编译一个程序,但它抛出以下错误:

[cc] /usr/bin/ld: cannot find -ludev

我检查了关于 SO 的其他主题,但响应是安装一些东西,而我似乎安装了 libudev。

在/lib/x86_64-linux-gnu我还有:

lrwxrwxrwx 1 root root      16 lut 19 21:30 libudev.so.1 -> libudev.so.1.3.5
-rw-r--r-- 1 root root   67600 lut 19 21:31 libudev.so.1.3.5

我试过将 libudev.so.0 链接到 libudev.so.1,但仍然无法正常工作。 ld 在寻找什么,为什么它不起作用?我该如何解决?

ld 是链接器的命令,您需要更新 LIBPATH 变量以包含库位置。

检查环境变量LIBPATH的值,改成LIBPATH=LIBPATH:<lib location>再编译

当您使用 -lfoo 时,链接器将查找名为 libfoo.alibfoo.so 的文件。

所以在你的情况下,你需要 libudev.so 没有任何后缀数字。

某些 Linux 发行版,例如 Debian 及其衍生版本 (Ubuntu?),默认情况下不安装这些符号链接。因此,与其自己创建符号链接,不如先尝试寻找 *-dev 包 (libudev-dev).