2015-04-14 21 views
8

我试图编译程序,但它引发以下错误:LD找不到的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寻找什么,为什么它不起作用?我该如何解决这个问题?

回答

14

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

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

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

+0

工作:)。谢谢! – user294034

0

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

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

+0

默认情况下,“echo $ LIBPATH”给我什么都不正常? (一个空字符串) – user294034