ld找不到udev

时间:2015-04-14 08:21:42

标签: linux ld

我正在尝试编译程序,但它会引发以下错误:

[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寻找,为什么它不起作用?我该如何解决这个问题?

2 个答案:

答案 0 :(得分:17)

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

因此,在您的情况下,您需要libudev.so而没有任何后缀编号。

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

答案 1 :(得分:0)

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

检查env变量LIBPATH的值并将其更改为LIBPATH=LIBPATH:<lib location>并再次编译。