ldd가 찾을 수 없다고 표시되지만 .so 파일은 /usr/lib에 있습니다.

ldd가 찾을 수 없다고 표시되지만 .so 파일은 /usr/lib에 있습니다.

실행파일을 입력하면 ldd경고창이 뜹니다 not found.

libCmp.so => not found
libstdc++.so.6 => /usr/lib/arm-linux-gnueabihf/libstdc++.so.6 (0xb6ed7000)
libm.so.6 => /lib/arm-linux-gnueabihf/libm.so.6 (0xb6e6c000)
libgcc_s.so.1 => /lib/arm-linux-gnueabihf/libgcc_s.so.1 (0xb6e48000)
libc.so.6 => /lib/arm-linux-gnueabihf/libc.so.6 (0xb6d63000)

하지만 이 so파일은 .에 있습니다 /usr/lib. 입력하면 file libCmp.so출력에 정보가 없음을 알 수 있습니다.buildID

libCmp.so: ELF 32-bit LSB shared object, ARM, version 1 (SYSV), dynamically linked, not stripped

산출file libgcc_s.so.1

libgcc_s.so.1: ELF 32-bit LSB shared object, ARM, version 1 (SYSV), dynamically linked, BuildID[sha1]=0x6b7de7cba96b907b2961892b76c176b1ddbf4bee, stripped

이것이 문제입니까? 이 정보를 파일에 추가하는 방법은 무엇입니까?


ldconfig -v |grep libCmp들어가려고 하는데/usr/lib

/sbin/ldconfig: Path `/lib/arm-linux-gnueabihf' given more than once
/sbin/ldconfig: Path `/usr/lib/arm-linux-gnueabihf' given more than once
/sbin/ldconfig: /lib/arm-linux-gnueabihf/ld-2.13.so is the dynamic linker, ignoring

    libCmp.so -> libCmp.so

하지만 아무것도 변하지 않았어

답변1

동적 링커 런타임 바인딩을 다시 빌드합니다(루트로).

ldconfig -v | grep libCmp

a) 라이브러리를 출력해야 합니다(발견되었음을 의미) b) 나중에 라이브러리를 찾을 수 있도록 필요한 심볼릭 링크를 올바르게 설치해야 합니다.

빌드 ID가 누락되어도 문제가 되지 않습니다.

답변2

최근에 libCmp를 추가한 경우.

루트로서 다음을 시도해 볼 수 있습니다.

ldconfig -v

ldconfig는 명령줄에 지정된 디렉토리, 파일 /etc/ld.so.conf 및 신뢰할 수 있는 디렉토리(/lib 및 /usr/lib)에 있는 최신 공유 라이브러리에 대한 필요한 링크와 캐시를 생성합니다. 캐시는 런타임 링커 ld.so 또는 ld-linux.so에서 사용됩니다.

-v는 ldconfig가 캐시에 링크된 모든 파일을 나열하도록 합니다. 그런 다음 출력을 보고 libCmp가 있는지 확인할 수 있습니다.

관련 정보