ld找不到udev

use*_*034 11 linux ld

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

[cc] /usr/bin/ld: cannot find -ludev
Run Code Online (Sandbox Code Playgroud)

我检查了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
Run Code Online (Sandbox Code Playgroud)

我已经尝试将libudev.so.0链接到libudev.so.1但它仍然无法正常工作.什么是ld寻找,为什么它不起作用?我怎么解决这个问题?

rod*_*igo 18

使用-lfoo链接器时,将查找名为libfoo.a或的文件libfoo.so.

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

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

  • 在Fedora上,我通过安装软件包`systemd-devel`来实现这一目标 (4认同)