
바이너리가 있고 test
공유 라이브러리를 사용한다고 가정해 보겠습니다.
a.so
b.so
c.so
d.so
연결된 라이브러리 중 하나가 범인으로 연결되는 다른 라이브러리를 연결하기 때문에 바이너리를 실행하는 데 문제가 있습니다 . 그러나 실제로는 3개가 아닌 20개 정도의 라이브러리가 있고 이를 모두 살펴보는 데 시간이 많이 걸리기 때문에 이를 연결하는 라이브러리가 무엇인지 모르겠습니다. ldd
바이너리가 직접 연결하는 라이브러리 목록만 제공합니다.
게다가 간접적인 수준이 한 가지가 아니라 여러 가지라는 점은 이음새가 없습니다. 즉, 다음과 같은 것이 있다는 것을 의미합니다 a.so -> x.so -> blabla.so -> d.so
.
전체 종속성 다이어그램을 시각화하는 방법이나 library 로 이어지는 정확한 종속성 체인을 찾는 방법이 있습니까 d.so
?
즉, 내가 원하는 것은 다음과 같습니다.
a.so -> something.so
-> second.so
-> third.so
b.so -> x.so -> blabla.so -> d.so
-> stuff.so
c.so -> something.else -> yetanotherlib.so
또는 내가 찾고 싶은 단순화된 버전, d.so
바이너리에 어떻게 연결되어 있는지 뱉어낼 것입니다.
a.so -> x.so -> blabla.so -> d.so
이것이 의미가 있기를 바랍니다.
답변1
당신이 원하는 것은 ldd -v
종속성 체인을 장황하게 표시하는 것입니다.