[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。
虽然我不能告诉你为什么找不到libdbus-1.so.3,但我敢猜测
wrong ELF class: ELFCLASS64
是因为你使用的filezilla是32位的,libdbus在/usr/local /bin 被编译为 64 位共享对象。您需要确保程序和库是使用兼容的架构类型构建的
要判断程序或共享对象是构建为 32 位还是 64 位,您可以发出如下命令:
file /usr/local/lib/libdbus-1.so.3
file ./filezilla
您使用的是什么操作系统和版本?
libdbus-1.so.3: 无法打开共享对象文件:没有那个文件或目录
尝试查找所需库的运行时链接器使用预定义的搜索路径。这些包括像
/usr/lib
或 /usr/lib64
这样的路径和可能的其他一些路径,以及 LD_LIBRARY_PATH
中给出的任何路径和运行的二进制文件中内置的一些绝对或相对路径。 (有关详细信息,请运行 man ld.so
以获取运行时链接器的手册。)
路径
/usr/local/lib
可能不是这些默认搜索路径之一。
libdbus-1.so.3:错误的 ELF 类:ELFCLASS64
您正在混合 32 位和 64 位二进制文件,这是不可能的。