linux 3:无法打开共享对象文件:无此文件或目录

g0czyy6m  于 2022-11-28  发布在  Linux
关注(0)|答案(2)|浏览(508)
[root@maomao bin]# find /usr/local/lib -name libdbus-1.so.3
/usr/local/lib/libdbus-1.so.3
[root@maomao bin]# cat /etc/ld.so.conf
include ld.so.conf.d/*.conf
/usr/local/lib
[root@maomao bin]# ldconfig
[root@maomao bin]# filezilla
filezilla: error while loading shared libraries: libdbus-1.so.3: cannot open shared object file: No such file or directory
[root@maomao bin]# export LD_LIBRARY_PATH=/usr/local/lib
[root@maomao bin]# filezilla
filezilla: error while loading shared libraries: libdbus-1.so.3: wrong ELF class: ELFCLASS64
[root@maomao bin]# cp /usr/local/lib/libdbus-1.so.3 ./
[root@maomao bin]# export LD_LIBRARY_PATH=./
[root@maomao bin]# filezilla
filezilla: error while loading shared libraries: libdbus-1.so.3: wrong ELF class: ELFCLASS64
[root@maomao bin]# env | grep LD_LIBRARY_PATH
LD_LIBRARY_PATH=./
[root@maomao bin]# ls
filezilla  fzputtygen  fzsftp  libdbus-1.so.3
[root@maomao bin]#

我确信我有“/usr/local/lib/libdbus-1.so.3”。但是我仍然不能运行filezilla。

2wnc66cl

2wnc66cl1#

虽然我不能告诉你为什么找不到libdbus-1.so.3,但我敢猜测,wrong ELF class: ELFCLASS64是因为您使用的filezilla是32位的,而/usr/local/bin中的libdbus被编译为64位共享对象。
要判断程序或共享对象是否构建为32位和64位,您可以发出如下命令:

file /usr/local/lib/libdbus-1.so.3
file ./filezilla

您使用的是什么操作系统和版本?

fxnxkyjh

fxnxkyjh2#

3:无法打开共享对象文件:无此文件或目录
运行时链接器使用预定义的搜索路径来查找所需的库。这些路径包括/usr/lib/usr/lib64之类的路径,可能还有其他一些路径,以及LD_LIBRARY_PATH中给出的任何路径和运行的二进制文件中内置的一些绝对或相对路径。(有关详细信息,请运行man ld.so以获取运行时链接器的手册。)
路径/usr/local/lib可能不是这些默认搜索路径之一。
3:错误的ELF类:精灵级64
您混合了32位和64位二进制文件,这是不可能的。

相关问题