2012-04-26 4 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/ 

아마 멍청한 짓을하고 있어요,하지만 난 시도 아무것도 생각할 수 없다.

편집 : 몇 가지 질문에 대답하려면 다음 질문 :

# ./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 비트 것입니다 :

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

좋아, 그냥 실행 파일 중 하나를 실행하려고 ?

+1

'LD_LIBRARY_PATH를 (를) 내 보냈습니까?' – vhallac

+0

예, LD_LIBRARY_PATH가 설정되고 ~/.bash_profile에 내 보냅니다 –

+0

환경에서 .bash_profile을 다시 소스에 저장 했습니까? 유감스럽게도 기본적으로 시작할 수는 있지만 일반적으로 고급 프로그래머를위한 기본 도구입니다. #EDIT는 올바른 디렉토리를 에코로 인쇄하기 때문에 그렇게 보일 것입니다. 흠 ... – Matt

답변

11

내가 갖고있는 바이너리는 공유 라이브러리의 32 비트 버전을 찾고 있었고 64 비트가 설치되어있었습니다. 멍청한 실수. LDD는 매우 통찰력있는 오류 메시지를 생성하지는 않았지만이를 실행하려고 시도했을 때 바이너리가 수행했습니다.

14

LD_LIBRARY_PATH를 내 보냅니 까? export 키워드는 하위 프로세스에 변수를 보내도록 Bash에 지시합니다. 그렇지 않으면 ldd에 LD_LIBRARY_PATH가 표시되지 않습니다.