2012-03-14 3 views
0

복잡한 문제를 설명하려고합니다. 기존 라이브러리를로드하지 못했습니다.

은 ( ...$PATH 내 정상입니다) 나는 심지어 PATH=/path/build:...을 설정 한

/path/build/ 
/path/build/liba.so 
/path/build/liba.so.3 -> liba.so 
/path/build/libtest.so 

이 파일을 말해봐.

어떤 시점에서 libtest.so은 런타임에 liba.so.3을로드합니다.

$ ldd /path/build/libtest.so 
linux-vdso.so.1 => (0x00007fff24fff000) 
liba.so.3 => not found 
libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f8fea222000) 
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f8fe9f9e000) 
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f8fe9d88000) 
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f8fe9b6a000) 
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f8fe97c9000) 
/lib64/ld-linux-x86-64.so.2 (0x00007f8fea767000) 

(두 번째 출력 라인에 유의) :

그러나, liba.so.3 코드 (성공적으로)로드 libtest.so을 실행할 때 존재하지 않는 것, 내가 도움을 ldd을 요청하는 경우,이 얻을

어떻게 될지 알 수 있습니까? 라이브러리가 분명히 있지만 로더가 그렇지 않다고 주장합니다.

+0

이 LD_LIBRARY_PATH에서/path/build 인 후 Linux에서 라이브러리를 찾습니다. Linux 동적 로더는 기본 위치 다음에 Linux의 라이브러리를 찾습니다. – display101

+0

@keith 그 코멘트를 답으로 바꾸십시오. 그러면 나는 당신의 배짱을 받아 들일 것입니다! 오, 오케이, 나는 구석에 5 분 동안 앉아서 수치심을 느끼게 할거야 ... – bitmask

답변

1

LD_LIBRARY_PATH에/path/build가 있습니까? Linux 동적 로더는 기본 위치 인

관련 문제