linux 명령어 ldd
공유 라이브러리의 의존성 확인하기.
$ ldd
Linux 명령어 ldd
프로그램이 사용하는 공유 라이브러리를 나열하는 명령어
1. 자세한 설명
ldd
명령어는 Linux에서 실행 파일이나 공유 라이브러리가 의존하는 공유 라이브러리를 나열하는 데 사용됩니다. 이 명령어는 각 라이브러리의 이름과 위치, 그리고 해당 라이브러리를 로드하기 위한 메모리 주소를 표시합니다. 이는 실행 파일의 디버깅, 종속성 확인 또는 라이브러리 문제 해결에 유용합니다.
2. 사용법
- 기본 사용법
ldd [실행 파일]
실행 파일에 필요한 모든 공유 라이브러리를 나열합니다. - 환경 변수 무시
ldd --ignore-environment [실행 파일]
환경 변수 없이 라이브러리 종속성을 확인합니다. - 버전 정보 확인
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
명령어를 사용하여 실행 파일의 공유 라이브러리를 검사하고 관리하는 다양한 방법을 보여줍니다.
No responses yet