我正在尝试启动并运行系统,并且遇到OpenMotif共享库的问题。我在LD_LIBRARY_PATH中有他们的目录,但它仍然无法找到它们。
以下是一个例子:
[root@intrepid netcool]# ldd /opt/netcool/omnibus/platform/linux2x86/bin/nco_* |grep 'not found'
libXm.so.3 => not found
libXpm.so.4 => not found
libXm.so.3 => not found
libXm.so.3 => not found
libXpm.so.4 => not found
libXm.so.3 => not found
libXm.so.3 => not found
libXm.so.3 => not found
libXm.so.3 => not found
[root@intrepid netcool]# find /usr/ -name libXm.so.3
/usr/lib64/libXm.so.3
[root@intrepid netcool]# find /usr/ -name libXpm.so.4
/usr/lib64/libXpm.so.4
[root@intrepid netcool]# echo $LD_LIBRARY_PATH
/opt/netcool/omnibus//platform/linux2x86/lib/:/opt/netcool//platform/linux2x86/lib/:/usr/lib/:/usr/lib64/
我可能做了一些愚蠢的事情,但我想不出别的事情可以试试。
编辑:回答下面提出的几个问题:
[root@intrepid netcool]# export LD_LIBRARY_PATH
[root@intrepid netcool]# ldd /opt/netcool/omnibus/platform/linux2x86/bin/nco_* |grep 'not found'
libXm.so.3 => not found
libXpm.so.4 => not found
libXm.so.3 => not found
libXm.so.3 => not found
libXpm.so.4 => not found
libXm.so.3 => not found
libXm.so.3 => not found
libXm.so.3 => not found
libXm.so.3 => not found
[root@intrepid netcool]# ldconfig
[root@intrepid netcool]# ldd /opt/netcool/omnibus/platform/linux2x86/bin/nco_* |grep 'not found'
libXm.so.3 => not found
libXpm.so.4 => not found
libXm.so.3 => not found
libXm.so.3 => not found
libXpm.so.4 => not found
libXm.so.3 => not found
libXm.so.3 => not found
libXm.so.3 => not found
libXm.so.3 => not found
好的,只是尝试运行其中一个可执行文件:
# ./bin/nco_xigen
/opt/netcool//omnibus/platform/linux2x86/bin/nco_xigen: error while loading shared libraries: libXm.so.3: wrong ELF class: ELFCLASS64
这是32位/ 64位的东西吗?
答案 0 :(得分:14)
您是否导出了LD_LIBRARY_PATH? export
关键字告诉Bash将任何变量发送到子进程 - 否则ldd永远不会看到LD_LIBRARY_PATH。
答案 1 :(得分:12)
我的二进制文件正在寻找32位版本的共享库,我安装了64位版本。愚蠢的错误。 LDD没有产生非常有见地的错误消息,但是当我尝试运行它时,二进制文件就出现了。