%20%ED%8C%8C%EC%9D%BC%20%EA%B2%80%EC%83%89%20%EA%B2%BD%EB%A1%9C.png)
공유 객체 파일을 로드하기 위해 검색되는 경로의 순서는 무엇입니까?
공유 객체 파일을 로드하려고 시도하는 실행 파일을 실행하려고 합니다. 공유 객체 파일은 에서 찾을 수 있습니다 /usr/lib/x86_64-linux-gnu/
.
두 명의 사용자가 있습니다. 이들을 user1
및 이라고 부르겠습니다 user2
. user1
실행 파일을 실행할 수 있지만 user2
다음 오류가 발생합니다: 공유 객체 파일을 열 수 없습니다: libicuuc.so
두 사용자 모두 동일한 LD_LIBRARY_PATH
. 누락된 것은 무엇입니까?
답변1
남자 ldconfig당신을 도울 수 있습니다
/etc/ld.so.cache File containing an ordered list of libraries found
in the directories specified in /etc/ld.so.conf, as
well as those found in /lib and /usr/lib.
하지만 귀하의 배포판에는 내 정보가 아닌 다른 정보가 포함될 수 있으므로 귀하의 배포판을 읽어야 합니다.
실행 파일에 어떤 라이브러리가 바인딩되어 있는지 결정하는 또 다른 방법은 다음을 사용하는 것입니다.ldd프로그램 예:
ldd /bin/echo
linux-vdso.so.1 => (0x00007ffc2277a000)
libc.so.6 => /lib64/libc.so.6 (0x0000003edc200000)
/lib64/ld-linux-x86-64.so.2 (0x0000003edbe00000)