2012-04-26 21 views
15

Próbuję uruchomić system i mam problemy z bibliotekami współużytkowanymi OpenMotif. Mam ich katalog w LD_LIBRARY_PATH, ale nadal nie może ich znaleźć.ldd nie może znaleźć biblioteki w LD_LIBRARY_PATH

Oto przykład:

[[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/ 

Jestem prawdopodobnie robi coś głupiego, ale nie mogę myśleć o niczym innym, aby spróbować.

EDIT: Aby odpowiedzieć na parę pytań poprosił poniżej:

[[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 

Ok, tylko starał się uruchomić jeden z plików wykonywalnych:

# ./bin/nco_xigen 
/opt/netcool//omnibus/platform/linux2x86/bin/nco_xigen: error while loading shared libraries: libXm.so.3: wrong ELF class: ELFCLASS64 

czy jest to 32 bit/64 bit rzecz ?

+1

Czy wyeksportowałeś LD_LIBRARY_PATH'? – vhallac

+0

Tak, LD_LIBRARY_PATH ustawiono i wyeksportowano w ~/.bash_profile –

+0

Czy ponownie źródło .bash_profile w swoim środowisku? Przepraszam, że zaczynam tak prosty, ale zazwyczaj jest to podstawowy materiał, który wyrusza w drogę do zaawansowanych programistów ... #EDIT Wydawałoby się, że tak, ponieważ echo wypisuje odpowiednie katalogi. Hmm ... – Matt

Odpowiedz

11

Pliki binarne, które miałem szukały 32-bitowych wersji współużytkowanych bibliotek, miałem zainstalowany 64-bit. Głupi błąd. LDD nie wygenerował bardzo wnikliwego komunikatu o błędzie, ale plik binarny zrobił to, gdy próbowałem go uruchomić.

14

Czy eksportowałeś LD_LIBRARY_PATH? Słowo kluczowe export nakazuje Bashowi przesyłanie dowolnych zmiennych do podprocesów - w przeciwnym razie ldd nigdy nie zobaczy LD_LIBRARY_PATH.