我正在尝试运行使用libudev.so
的exe,但它会出现此错误:
加载共享库时出现错误:libudev.so.0:无法打开共享对象文件:没有这样的文件或目录
正在运行uname -a
:
3.5.0-44-generic#67~minision1-Ubuntu SMP Wed Nov 13 16:16:57 UTC 2013 x86_64 x86_64 x86_64 GNU / Linux
我正在使用 Ubuntu 12.04
我已检查/lib
/lib32
/lib64
那里没有libudev
但是在Synaptic管理器中我可以看到安装了libudev0
(见下图)
我可以在/lib/x86_64-linux-gnu/libudev.so.0
中找到它。
可能出现什么问题?
答案 0 :(得分:7)
事实证明(我怀疑)您试图在64位系统上运行32位可执行文件。 64位Linux内核能够运行32位可执行文件(这就是为什么你没有得到“exec格式错误”),但它需要一组独立的(32位)库:64位版本的{{1对于32位程序没用。 (有关共享库依赖关系解析的一些详细信息,请参阅ld.so manpage)。
现代基于Debian的发行版支持多个体系结构的同步库安装。 libudev.so.0
应该得到一个32位版本的库及其所有依赖项(如果它是第一次使用32位应用程序,可能会有很多它们)。如果您从古老的安装升级,则可能需要将apt-get install libudev0:i386
添加到i386
支持的体系结构中,如下所示:
dpkg
如果程序需要其他一些库,也可以使用一些建议:
dpkg --add-architecture i386
,这样您就可以按文件名查找包名,即使当前未安装包(例如:apt-file update
)还有一种旧的Debian方式在64位系统上获取32位库:amd64存储库中的apt-file search /libudev.so.0
包提供了一组库,概念上是“应用程序可能需要的所有内容”。 不要使用这种方法除非你正在运行Debian squeeze或更早版本(或者是同一年龄的基于debian的发行版)。即使它有效,也无法保证程序也不需要其他库。当多数支持还没有准备就绪时,ia32-libs
很有用,那是几年前的事了。
答案 1 :(得分:7)
我只是遵循了这些说明,它运作得很好。
https://askubuntu.com/questions/369310/how-to-fix-missing-libudev-so-0-for-chrome-to-start-again
sudo ln -s /lib/x86_64-linux-gnu/libudev.so.1.3.5 /usr/lib/libudev.so.0
答案 2 :(得分:4)
尝试创建符号链接:
sudo ln -s /lib/x86_64-linux-gnu/libudev.so.1 /lib/x86_64-linux-gnu/libudev.so.0
答案 3 :(得分:0)
我在与Orange Pi RK3399混在一起试图从Linux Mint刷新固件时遇到了此错误。该Pi的解决方案是手动的,并给出了以下命令:
sudo apt-get install git-core gitk git-gui gcc-arm-linux-gnueabihf u-boot-tools device-tree-compiler gcc-aarch64-linux-gnu mtools parted libudev-dev libusb-1.0-0-dev libssl-dev pv e2fsprogs build-essential fakeroot devscripts
不确定,但是libudev-dev
应该足够,所以命令应该是:
sudo apt-get install libudev-dev
并非所有给定的软件包都是必需的。