나는 win32 실행 파일을 구축 중입니다. 컴파일러는 MinGW의 최신 버전입니다. 라이브러리 의존성은 GLUT와 libpng입니다.누락 된 zlib.dll
먼저 Windows 7 머신에서 테스트를했고 libpng3.dll 및 freeglut32.dll을 얻어야했습니다. 그러나 XP에서는 zlib1.dll을 (추가로) 획득해야했습니다.
XP 시스템은 새로 설치 한 VM 이었으므로 새로운 win7 시스템에는 zlib1이 부족할 수도 있습니다.
제 질문은 어떤 DLL을 배포해야하는지 찾는 방법입니다. 특정 시스템에서 내 프로그램을 실행하려면 동적 라이브러리가 필요합니까? 을 사전에 알고 있습니까?? 나는 이것이 설치 프로그램이 무엇을위한 것이라고 생각합니다 ... 저는 설치 프로그램이 어떤 종속성이 만족스럽지 않은지 알아 내기 위해 시스템을 살펴본 다음 그것을 제공한다고 생각합니다. 이렇게하면 내 프로그램을 배포한다면 사용자의 컴퓨터에 이미 zlib1.dll이 있는지 확인할 수 있으며 zlib1.dll이 시스템 디렉토리에 이미있는 경우 zlib1.dll을 설치하지 않습니다. 그러나 zlib가 부족한 컴퓨터에서 실행 파일을 테스트 할 때까지 필자는 특별히 "libpng requires zlib"라는 문서를 찾지 못했지만이 종속성을 알지 못했습니다. 테스트 할 모든 운영 체제의 각 버전을 새로 설치하지 않고 종속성 목록을 만들려면 어떻게해야합니까?
실행 파일을 디 컴파일하거나 런타임에 링크되는 모든 라이브러리를 찾기 위해 연결 프로세스를 검사하는 것이 하나의 아이디어입니다. 문제는 이제 이들 중 어느 것이 이미 존재해야하는지, 그리고 그 중 어느 것이 내가 배포에서 제공 할 것으로 예상되는지를 알아내는 것이다.
편집 : 좋아, 보니, 내가 다운로드 한 libpng 설치가 bin 디렉토리 안에 zlib1.dll을 제공했다. 그래서 그것을 포함하지 않는 것은 내 잘못이다. 어쨌든 다니엘의 대답은 확실합니다.
이것은 완전히 대단합니다. 고맙습니다. –
DLL과 관련된 거의 모든 질문에는이 도구를 참조하는 답변이 하나 있습니다 :)) – Daniel