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.a
或 libfoo.so
的文件。
所以在你的情况下,你需要 libudev.so
没有任何后缀数字。
某些 Linux 发行版,例如 Debian 及其衍生版本 (Ubuntu?),默认情况下不安装这些符号链接。因此,与其自己创建符号链接,不如先尝试寻找 *-dev
包 (libudev-dev
).
我正在尝试编译一个程序,但它抛出以下错误:
[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.a
或 libfoo.so
的文件。
所以在你的情况下,你需要 libudev.so
没有任何后缀数字。
某些 Linux 发行版,例如 Debian 及其衍生版本 (Ubuntu?),默认情况下不安装这些符号链接。因此,与其自己创建符号链接,不如先尝试寻找 *-dev
包 (libudev-dev
).