라이브러리가 다른 연결된 라이브러리를 통해 바이너리에 연결되는 방법을 알아보세요.

라이브러리가 다른 연결된 라이브러리를 통해 바이너리에 연결되는 방법을 알아보세요.

바이너리가 있고 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종속성 체인을 장황하게 표시하는 것입니다.

관련 정보