简体   繁体   中英

libdbus-1.so.3: cannot open shared object file: No such file or directory

[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]# 

I sure that I has "/usr/local/lib/libdbus-1.so.3". But I still can not run filezilla.

Although I can't tell you why libdbus-1.so.3 can't be found, but I would venture to guess that the wrong ELF class: ELFCLASS64 is because the filezilla you are using is 32bit and the libdbus in /usr/local/bin was compiled as 64bit shared objects. You need to make sure that programs and libraries are built with compatible architecture types

To tell if a program or shared object is built as 32 and 64 bit you can issue a command like this:

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

What OS and version are you using?

libdbus-1.so.3: cannot open shared object file: No such file or directory

The runtime linker that tries to find needed libraries uses predefined search paths. These include paths like /usr/lib or /usr/lib64 and a possibly a few other paths, as well as any paths given in LD_LIBRARY_PATH and some absolute or relative paths built in the binary that is run. (For details run man ld.so for the manual of the runtime linker.)

The path /usr/local/lib is probably not one of these default search paths.

libdbus-1.so.3: wrong ELF class: ELFCLASS64

You are mixing 32bit and 64bit binaries, which is not possible.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM