error while loading shared libraries 현상 해결방법

반응형

리눅스에서 어떤 실행 파일을 실행했을 때 "error while loading shared libraries"라는 에러가 출력되면서 실행되지 않는 경우가 있다.

 

아래 예시는 hello라는 라이브러리(libhello.so)를 링크해서 사용하는 app라는 어플리케이션을 실행했을 때 출력된 에러 메시지이다.

$ ./app
./app: error while loading shared libraries: libhello.so: cannot open shared object file: No such file or directory
$

 

이는 말 그대로 app 어플리케이션을 실행하기 위해 필요한 libhello.so 파일을 찾을 수 없다는 이야기인데,

libhello.so 라이브러리 파일을 시스템 라이브러리 디렉토리(예: /usr/lib)에 저장을 해 두었음에도 이러한 에러가 발생할 수 있다.

 

이러한 에러는 ldconfig 을 이용해서 해결할 수 있다.

다음과 같이 실행한 후에는 app 어플리케이션이 정상적으로 실행된다.

$ sudo ldconfig
$ ./app
hello

 

ldconfig 을 실행하면, 공유 라이브러리 캐시가 다시 설정된다.

해당 명령은 시스템에 존재하는 공유 라이브러리 파일들을 조사하여, /etc/ld.so.cache 파일을 설정/업데이트함으로써 해당 라이브러리들이 어플리케이션에 의해 사용될 수 있도록 한다.

 

댓글

Designed by JB FACTORY