QT 라이브러리를 사용하여 다시 컴파일하려는 Windows 화면 보호기가 있으므로 더 많은 플랫폼에서 사용할 수 있습니다. Vista 및 XP 배포와 관련하여 문제가 있습니다.MSVCx80.dll에 의존하지 않고 QTcore4.dll을 빌드하는 방법은 무엇입니까?
내 스크린 세이버를 MT로 정적으로 컴파일하고 종속성 검사 프로그램을 실행합니다. 결과는 다음과 같습니다.
MyScreensaver.SCR에는 여러 개의 DLL, QTCORE4.DLL이 필요하지만 MSVCx80.DLL은 필요하지 않습니다. 지금까지는 문제가 없습니다.
내 문제는 그 차례에 QTCORE4.DLL에 MSVCP80.DLL과 MSVCR80.DLL이 필요하다는 것입니다. 결과적으로 내 응용 프로그램이 Vista 시스템에서 실행되지 않습니다.
MS CRT DLL에 종속성이 없도록 QTCORE4.DLL을 Microsoft 라이브러리 (어쩌면 Libcmt.lib?)에 정적으로 링크되도록 빌드 할 수 있습니까?
제한 :
나는 사용자가 MS VC 재배포를 설치하고 싶지 않아요. 스크린 세이버는 단지 1 MB이며, 스크린 세이버를 위해 컴퓨터에서 많은 변화를 사용자에게 요구하는 비웃음입니다.
스크린 세이버가 system32에 설치되어 있고 거기에 가능한 최소 파일을 설치하고 싶기 때문에 트릭을 사용하여 스크린 세이버와 동일한 응용 프로그램 경로에 MS CRT dll을 넣고 싶지 않습니다.
마지막으로, 나는 DLL을 잔뜩
- 내가 QT의 전체 정적 컴파일 및 링크를 시도하지 않고 있음을, 모 놀리 식 프로그램을 생산하는 것을 선호,하지만 내가 제대로 이해한다면이에 의해, (허용되지 않습니다 http://www.qtsoftware.com/developer/faqs/why-does-a-statically-built-qt-use-the-dynamic-visual-studio-runtime-libraries-do-i-need-to-deploy-those-with-my-application
다양한 방향으로 해결책을 시도 후에는 가장 실현 가능한 일이 QTCore4.dll 및 QTGui4.dll을 사용하는 것입니다 보이지만을 갖는 LGPL의)과는 또한이에 따라 사용하지 않는 것이 좋습니다 MSVCRT에 정적으로 링크됩니다. 이런 방식으로, 내 프로그램도 QT DLL도 MSVCRT dll에 의존하지 않습니다.
해결 방법이 있습니까?
감사합니다 (I는 QT 프로그래밍에 새로운 오전), 마이클
업데이트 : 정적으로 QT를 구축 , 내가 링커 QTcore.lib에 포함/MT로 정적으로도 내 applitation을 구축했다. 이제 QT (QTcore.lib)의 정적 빌드가 또한 종속되어 있기 때문에 화면 보호기가 MSVCR80.DLL에 의존한다는 것을 알았습니다. MSVCR80.DLL은 위에서 말했듯이 XP와 Vista에 배포 할 수 없기 때문에 저에게 장애물입니다. 질문 : 이제 MSVCR80.DLL에 의존하지 않고 QT 응용 프로그램을 빌드 할 수있는 방법이 있습니까? 도움을 주셔서 감사합니다 마이클 – Mike