2011-11-05 2 views
5

하나의 .lib 파일이 정적 라이브러리 v.s임을 어떻게 알 수 있습니까? DLL에 대한 가져 오기 라이브러리? 이 작업을 수행 할 수있는 도구 나 명령이 있습니까?정적 라이브러리 v.s. Windows 플랫폼에서 라이브러리 가져 오기

두 번째 질문은 정적 라이브러리의 종속성을 어떻게 확인할 수 있습니까? 즉,이 정적 라이브러리에 포함 된 DLL을 어떻게 알 수 있습니까?

도움을 주셔서 감사합니다.

안부,

+0

그 정보는 .lib 파일과 함께 제공 될 것입니다. –

+0

다음과 같은 단서가 없다면 * 원하지 않습니다 *해야합니다. 라이브러리를 사용하십시오. 코드 소유자에게 지원 옵션에 대해 문의하십시오. –

+1

정적 라이브러리 및 가져 오기 라이브러리는 스펙트럼의 극한 2 개에 지나지 않습니다. 또한 정적/가져 오기 라이브러리가 혼합되어있을 수도 있습니다. –

답변

5

가져 오기 라이브러리가 프로그램에 DLL 종속성을 추가합니다. DLL이 없으면 프로그램이 시작되지 않습니다. (Dependency Walker을 사용하면 프로그램의 DLL 이름이 달라집니다.

Afaik 정적 라이브러리에는 종속성이 없습니다. 그것들은 프로그램에 링크되어 있으며, 링커 오류는 특정 라이브러리가 다른 라이브러리에 의존 하는지를 알려줍니다. (최소한 GCC에서 나는 MS 도구의 동작을 원한다는 것을 모릅니다.)

+0

확장하려면 정적 라이브러리를 간단한 프로그램과 연결 한 다음 종속성 워커를 사용하여 새로운 DLL 종속성을 찾습니다. –

+4

정적 라이브러리는 일반적으로 최소한 기본 시스템 라이브러리 (ntdll.dll 등)에 대한 DLL 종속성을 가지며 언어 런타임 (예 : msvcrt.dll)에 대한 종속성도 가질 수 있습니다. –