제3자가 컴파일한 바이너리가 있는데 여기에 필요한 모든 종속성을 알아야 합니다. 모든 것이 표시되는지 잘 모르겠습니다 ldd
. 바이너리가 GStreamer와 일부 코덱 패키지를 사용한다고 확신하지만 ldd
GStreamer만 표시되고 코덱 패키지는 표시되지 않습니다...
이 작업을 올바르게 수행하는 방법에 대한 아이디어가 있습니까?
답변1
라이브러리는 특정 환경, 명령줄 인수, 구성 옵션 및 심지어 달의 위상에 따라 런타임에 로드될 수 있습니다. 라이브러리 자체도 다른 라이브러리에 의존할 수 있습니다. 따라서 바이너리가 내부에서 무엇을 하는지 알지 못한다면 실제로 필요한 것이 무엇인지 판단하는 것은 불가능해 보입니다.
답변2
ldd
좋은 시작이다. 그런 다음 바이너리를 실행 strace -fo /tmp/strace.log
하고 애플리케이션이 무엇을 찾으려고 하는지 확인할 수 있습니다.
무엇 으로 시작 되나요 grep
?ENOENT
아니요발견하다.
또한 응용 프로그램과 함께 제공되는 설명서와 실행 로그(사용 가능한 경우)도 볼 수 있습니다.
답변3
ldd만 표시링크종속성, 즉 프로그램을 성공적으로 실행하는 데 실제로 필요한 것이 무엇인지 표시하지 않고 프로그램을 실행하는 데 필요한 것만 표시합니다.
패키지 관리자를 통해 종속성 해결을 수행해야 합니다.