네트워크 엔지니어 & 개발자 로엘이

 

리눅스 명령어 ldd는 지정한 프로그램을 실행하는데 필요한 공유 라이브러리(Shared Library) 의존성을 확인할 때 사용하는 명령어다.

 

error while loading shared libraries: [라이브러리 명] cannot open shared object file: No such file or directory

실행 파일은 있는데 필요한 라이브러리가 없는 경우 해당 라이브러리가 없다고 오류 메시지를 출력한다. 하지만 오류 메시지는 필요한 라이브러리를 1개씩만 출력하기 때문에 여러 라이브러리가 필요한 경우에 번거로운 상황이 발생한다. 이러한 상황에 ldd 명령을 활용하면 필요한 라이브러리를 모두 확인할 수 있다.

ldd command

ldd [옵션] 파일명

pwd 옵션

옵션 설명
-v 전체 정보 표시
-u 사용하지 않는 직접 의존성 표시
-d 데이터 리로케이션 처리
-r 데이터 및 함수 리로케이션 처리

자주 사용하는 예시

실행 파일의 라이브러리 의존성 확인하기

[root@localhost work]# ldd /bin/rm
        linux-vdso.so.1 =>  (0x00007fff6c38a000)
        libc.so.6 => /usr/lib64/libc.so.6 (0x00007fa976d4b000)
        /lib64/ld-linux-x86-64.so.2 (0x00007fa977119000)

rm 파일의 라이브러리 의존성을 확인한 예시다.

라이브러리가 존재하는 경우 해당 라이브러리의 경로를 출력하고, 없는 경우에는 not found를 출력한다.

실행 파일의 라이브러리 의존성과 해당 라이브러리 의존성 확인하기

[root@localhost work]# ldd -v /bin/rm
        linux-vdso.so.1 =>  (0x00007ffc167fe000)
        libc.so.6 => /usr/lib64/libc.so.6 (0x00007f6c28786000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f6c28b54000)

        Version information:
        /bin/rm:
                libc.so.6 (GLIBC_2.3) => /usr/lib64/libc.so.6
                libc.so.6 (GLIBC_2.3.4) => /usr/lib64/libc.so.6
                libc.so.6 (GLIBC_2.14) => /usr/lib64/libc.so.6
                libc.so.6 (GLIBC_2.4) => /usr/lib64/libc.so.6
                libc.so.6 (GLIBC_2.2.5) => /usr/lib64/libc.so.6
        /usr/lib64/libc.so.6:
                ld-linux-x86-64.so.2 (GLIBC_2.3) => /lib64/ld-linux-x86-64.so.2
                ld-linux-x86-64.so.2 (GLIBC_PRIVATE) => /lib64/ld-linux-x86-64.so.2

rm 파일의 라이브러리와 해당 라이브러리의 의존성을 확인한 예시다.

 

 

- 끝 -

728x90
반응형
250x250

공유하기

facebook twitter kakaoTalk kakaostory naver band