linux 명령어 ldd

공유 라이브러리의 의존성 확인하기.

$ ldd
Linux 명령어 ldd

Linux 명령어 ldd

프로그램이 사용하는 공유 라이브러리를 나열하는 명령어

1. 자세한 설명

ldd 명령어는 Linux에서 실행 파일이나 공유 라이브러리가 의존하는 공유 라이브러리를 나열하는 데 사용됩니다. 이 명령어는 각 라이브러리의 이름과 위치, 그리고 해당 라이브러리를 로드하기 위한 메모리 주소를 표시합니다. 이는 실행 파일의 디버깅, 종속성 확인 또는 라이브러리 문제 해결에 유용합니다.

2. 사용법

  1. 기본 사용법
    ldd [실행 파일]
    실행 파일에 필요한 모든 공유 라이브러리를 나열합니다.
  2. 환경 변수 무시
    ldd --ignore-environment [실행 파일]
    환경 변수 없이 라이브러리 종속성을 확인합니다.
  3. 버전 정보 확인
    ldd --version
    ldd 명령어의 버전 정보를 출력합니다.

3. 자세하게 설명

ldd 명령어는 다음과 같은 작업에서 유용하게 사용됩니다:

  • 라이브러리 종속성 확인: 실행 파일이 특정 라이브러리에 의존하는지 빠르게 확인할 수 있습니다.
  • 디버깅: 라이브러리 경로가 누락되었거나 잘못된 경우 문제를 찾고 수정할 수 있습니다.
  • 환경 테스트: 공유 라이브러리와 관련된 호환성 또는 설치 문제를 확인할 수 있습니다.

4. 자세한 명령어 사용법

다음은 ldd 명령어의 다양한 사용 예제입니다:

# 실행 파일의 공유 라이브러리 나열
$ ldd /bin/ls

# 환경 변수 없이 종속성 확인
$ ldd --ignore-environment /bin/ls

# 특정 라이브러리 파일에 대해 종속성 확인
$ ldd /usr/lib/libc.so.6

# 동적 라이브러리 경로를 포함한 정보 보기
$ LD_LIBRARY_PATH=/custom/lib ldd ./my_program

# 결과를 파일로 저장
$ ldd ./my_program > dependencies.txt

# 출력 결과 필터링
$ ldd ./my_program | grep "libstdc++"

# 스크립트를 통해 모든 실행 파일의 라이브러리 확인
#!/bin/bash
for file in /usr/bin/*; do
  if [[ -x $file ]]; then
    echo "=== $file ==="
    ldd $file
  fi
done

# 라이브러리가 시스템에 존재하지 않는 경우 경고 메시지 확인
$ ldd ./unknown_program
libexample.so => not found

# 특정 라이브러리가 로드되는 메모리 주소 확인
$ ldd ./my_program | awk '{print $3}'

# 동적 링커의 정확한 위치 확인
$ ldd --help | grep "dynamic linker"

# 시스템에서 실행 파일의 전체 종속성 확인
$ ldd ./app | less

# 공유 라이브러리가 동작하지 않을 때 문제 해결
$ ldd ./broken_program

# 모든 경로에서 라이브러리를 검사
$ ldd ./my_program | sort

# 프로그램 종속성을 디버그 로그에 추가
$ ldd ./my_program >> debug.log
            

위의 예제는 ldd 명령어를 사용하여 실행 파일의 공유 라이브러리를 검사하고 관리하는 다양한 방법을 보여줍니다.

© 2025 Linux 명령어 설명

Categories:

No responses yet

답글 남기기