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
을 요청하는 경우,이 얻을
어떻게 될지 알 수 있습니까? 라이브러리가 분명히 있지만 로더가 그렇지 않다고 주장합니다.
이 LD_LIBRARY_PATH에서/path/build 인 후 Linux에서 라이브러리를 찾습니다. Linux 동적 로더는 기본 위치 다음에 Linux의 라이브러리를 찾습니다. – display101
@keith 그 코멘트를 답으로 바꾸십시오. 그러면 나는 당신의 배짱을 받아 들일 것입니다! 오, 오케이, 나는 구석에 5 분 동안 앉아서 수치심을 느끼게 할거야 ... – bitmask