我有一个问题。我在64位Solaris上使用GCC构建了一个可执行文件,在运行时我正在尝试加载64位libz.so库。 但我经常遇到以下错误:
Failed to load the library ld.so.1: ifsvc: fatal: /usr/sfw/lib/libgcc_s.so.1: wrong ELF class: ELFCLASS32
在网络上,我最常用的解决方案是在开始执行之前运行添加此命令:
export LD_LIBRARY_PATH=/usr/sfw/lib/64:$LD_LIBRARY_PATH
但它对我没有用,我仍然得到这个错误。
当我尝试ldd
命令时,我没有收到任何错误。
-bash-3.2$ ldd libz.so
warning: ldd: libz.so: is not executable
libc.so.1 => /usr/lib/64//libc.so.1
libgcc_s.so.1 => /usr/sfw/lib/64/libgcc_s.so.1
libm.so.2 => /usr/lib/64//libm.so.2
/platform/SUNW,Sun-Fire-T200/lib/sparcv9/libc_psr.so.1
-bash-3.2$
还有其他解决方法可以解决这个问题吗? 它可以取决于二进制是如何构建的吗?