2010-11-26 3 views
0

특정 패키지가 현재 작업중인 프로젝트에 적합한 방식을 이해하려고합니다. 이 패키지의 일부만이 실제로 프로젝트의 바이너리로 만들 것이라고 믿습니다. 정확히 어떤 부분을 찾을 필요가 있습니다. 이 패키지의 라이브러리 함수는 여러 다른 장소에서 호출됩니다 (즉, 여러 다른 패키지가이 패키지에 종속되어 있음).바이너리 소스 추적

프로젝트를 빌드하고 배포 할 계획입니다. 종속 패키지의 모든 헤더를보고 배포 할 소스 -> 바이너리 파일을 결정하는 유일한 방법은 무엇입니까? 아니면 이것에 접근하는 더 영리한 방법이 있습니까? 당신은 우리에게 많은 정보를 제공하지 않은

+0

안녕하세요, 우리는 여기서 어떤 이야기를하고 있습니까? 라이브러리 의존성보다는 패키지 의존성을 결정하는 방법을 묻고 있습니까? –

+0

Linux (우분투). 이미 패키지 의존성에 대해 알고 있지만 레벨을 더 깊게해야합니다. *이 패키지의 일부 코드는 LGPL 하에서 라이센스를 받았으며, 실제로이 코드를 사용하는지 알아 보거나, 단순히 거기에 앉아있는 경우에만 알아야합니다. – ajwood

답변

1

사전에

덕분에 이동, 그러나 여기에서 작동하는 방법이다 : 패키지의 일부를 제거하고 프로젝트가 여전히 컴파일되는지 확인은.

+0

감사합니다. 질문이 가능한 한 일반적 일 때 가장 좋습니다. 불행히도 때로는 적절한 양의 세부 정보를 얻지 못하는 경우가 있습니다. – ajwood

0

nm을 사용하여 정적 라이브러리의 압축을 푸십시오. 그러면 lib에 포함 된 모든 파일과 메소드가 나열됩니다.

문자열을 사용해 볼 수도 있습니다. 바이너리에 정의 된 문자열을 표시합니다.

소스를보고 정의한 문자열이 라이브러리에 있는지 확인하십시오.

실행 파일이 호출하는 메소드를 확인하기 위해 gprof와 같은 것을 사용할 수도 있습니다.

관련 문제