Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unix ldd can';在LD_library_路径中找不到库_Unix_Shared Libraries_Ldd - Fatal编程技术网

Unix ldd can';在LD_library_路径中找不到库

Unix ldd can';在LD_library_路径中找不到库,unix,shared-libraries,ldd,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

我正在尝试启动并运行一个系统,但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\u LIBRARY\u路径?
export
关键字告诉Bash将任何变量发送到子流程-否则ldd将永远看不到LD_LIBRARY_路径。

我的二进制文件正在寻找共享库的32位版本,我安装了64位。愚蠢的错误。LDD没有生成非常深刻的错误消息,但当我尝试运行它时,二进制文件产生了错误消息。

您是否
导出了LD_LIBRARY_PATH
?是的,LD_LIBRARY_PATH已在~/.bash_profile中设置并导出。您是否在您的环境中重新生成了.bash_profile?很抱歉开始这么简单,但通常是基本的东西会让高级程序员绊倒#因为echo打印出正确的目录,所以编辑它似乎是正确的。嗯……本着抓救命稻草的精神,你能跑吗?试试
ldconfig-p | grep'X[p]m'
搜索
ld.so
缓存。