2012-04-26 28 views
15

我試圖讓系統啓動並運行,並且遇到了OpenMotif共享庫的問題。我有他們的目錄在LD_LIBRARY_PATH,但它仍然無法找到它們。ldd無法在LD_LIBRARY_PATH中找到庫

下面是一個例子:

[[email protected] 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 
[[email protected] netcool]# find /usr/ -name libXm.so.3 
/usr/lib64/libXm.so.3 
[[email protected] netcool]# find /usr/ -name libXpm.so.4 
/usr/lib64/libXpm.so.4 
[[email protected] netcool]# echo $LD_LIBRARY_PATH 
/opt/netcool/omnibus//platform/linux2x86/lib/:/opt/netcool//platform/linux2x86/lib/:/usr/lib/:/usr/lib64/ 

我可能做一些愚蠢的事,但我想不出別的嘗試。

編輯:要回答幾個問題如下要求:

[[email protected] netcool]# export LD_LIBRARY_PATH 
[[email protected] 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 
[[email protected] netcool]# ldconfig 
[[email protected] 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位的事情?

+1

您是否輸出LD_LIBRARY_PATH? – vhallac 2012-04-26 20:37:59

+0

是的,LD_LIBRARY_PATH已設置並在〜/ .bash_profile中導出 – 2012-04-26 20:45:47

+0

您是否在您的環境中重新生成.bash_profile文件?對不起,開始這麼基本,但它通常是基本的東西,讓高級程序員絆倒... #EDIT它似乎你做了,因爲回聲打印出正確的目錄。嗯... – Matt 2012-04-26 20:49:22

回答

11

我所使用的二進制文件正在尋找32位版本的共享庫,我安裝了64位版本。愚蠢的錯誤。 LDD並沒有產生非常有洞察力的錯誤信息,但是當我嘗試運行它時,二進制文件就這樣做了。

14

您是否已經導出LD_LIBRARY_PATH?關鍵字export告訴Bash將任何變量發送到子進程 - 否則ldd將永遠不會看到LD_LIBRARY_PATH。