답변:
ldd binary-exec를 사용해보십시오
예:
~$ ldd /bin/bash
linux-gate.so.1 => (0x00606000)
libncurses.so.5 => /lib/libncurses.so.5 (0x00943000)
libdl.so.2 => /lib/tls/i686/cmov/libdl.so.2 (0x00c5d000)
libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0x003e9000)
/lib/ld-linux.so.2 (0x00a41000)
직접 필요한 것을 찾으려면 :
readelf -d APP | grep NEEDED
ldd
다른 곳에서 언급했듯이 모든 직접 및 간접 라이브러리는 런타임에 필요한 모든 것을 보여줍니다. dlopen ()으로 동적으로 열 수 있기 때문에 전체 목록이 아닐 수도 있지만 99 %의 시간 동안 작동합니다.
ld 및 libtool은 컴파일 / 링크시 사용됩니다. 앱이 있으면 유용하지 않습니다.
편집 나중에 OSX에 대해 묻는 답변으로 볼 수 있지만 Linux 도구에 대한 답변을 추가하고 싶습니다.
한 가지 언급 한 것을 잊어 버렸습니다. 당신은 버전에 대해 물었습니다. "어떤 버전"질문 ldd
에도 readelf
대답 하지도 않습니다 . 찾고있는 라이브러리의 파일 이름을 알려주고 명명 규칙에 버전 정보가있을 수 있지만 아무것도 시행하지 않습니다. 심볼의 버전이 지정 될 수 있으며 nm
이를 확인하려면 레벨이 훨씬 낮아야합니다 .