답변:
실행 파일이 있고 라이브러리를 어디에서 가져 오는지 확인하려면 다음을 실행하십시오.
ldd /path/to/executable
이것은이 실행의의 기본 검색 경로에 라이브러리뿐만 아니라 라이브러리를 차지한다 RPATH 있는 경우.
Linux에서는 효율성을 위해 시스템 라이브러리에 대한 경로가 캐시됩니다. /sbin/ldconfig -p
캐시의 내용을 표시합니다 (에 저장 됨 /etc/ld.so.cache
). 라이브러리의 위치를 보여주는 스크립트는 다음과 같습니다.
#!/bin/sh
if [ -n "$LD_LIBRARY_PATH" ]; then
set -f
IFS=:
for d in $LD_LIBRARY_PATH; do
if [ -e "$d/$1" ]; then echo "$1"; fi
done
fi
/sbin/ldconfig -p |
awk -v needle="$1" '$1 == needle {sub(/.* => /, ""); print}'
gcc
의 -lLIBNAME
플래그 처럼 작동하는 유틸리티를 찾고 있다면 , 파일을 libLIBNAME.so
찾은 다음과 같은 작은 스크립트를 사용할 수 있습니다.
#!/bin/sh
ldpath="${LD_LIBRARY_PATH:-$(</etc/ld.so.conf)}"
notfound=1
for libdir in ${ldpath//:/ }; do
(test -f "$libdir/lib${1}.so" && echo "$_") && notfound=0
done
[ "$notfound" -eq 0 ]