unix - ldd 在 LD_LIBRARY_PATH 中找不到库

标签 unix shared-libraries ldd

我正在尝试启动并运行系统,但 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 位的东西吗?

最佳答案

你导出LD_LIBRARY_PATH了吗? export 关键字告诉 Bash 将任何变量发送到子进程 - 否则 ldd 将永远不会看到 LD_LIBRARY_PATH。

关于unix - ldd 在 LD_LIBRARY_PATH 中找不到库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10341044/

相关文章:

bash - 你如何使用命令启动 Unix screen 命令?

c - Unix C - 可移植 WEXITSTATUS

c++ - 分配给结构数组

c++ - 应该在共享库头文件中使用内联函数吗?

linux - 如何在 Linux 上获取/etc/ld.so.conf 中的路径列表

c - TCP/IP 客户端发送

c++ - 检查是否在 unix 中加载了共享对象

centos6 - libm.so.6 : cannot open shared object file: No such file or directory

linux - 库部署与未使用的直接依赖关系

gcc - ELF 共享库 : relocation offset out of bounds