J'ai un économiseur d'écran de Windows que je veux recompiler en utilisant les bibliothèques QT, de sorte que je puisse rendre disponible pour plus de plates-formes. Je suis confronté à des problèmes avec le déploiement sur Vista et XP.Comment construire QTcore4.dll sans dépendance à MSVCx80.dll?
Je compile mon économiseur d'écran statiquement avec MT, et exécute le vérificateur de dépendance. Les résultats sont:
MyScreensaver.SCR a besoin de plusieurs DLL, QTCORE4.DLL mais pas de MSVCx80.DLL. Jusqu'ici tout va bien.
Mon problème est que QTCORE4.DLL à son tour, a besoin de MSVCP80.DLL et MSVCR80.DLL En conséquence mon application ne fonctionne pas sur les systèmes Vista. Puis-je construire QTCORE4.DLL pour lier statiquement les bibliothèques microsoft (peut-être Libcmt.lib?) Afin que je n'ai pas de dépendances dans les DLL CRT MS?
Limitations:
Je ne veux pas avoir les utilisateurs installent les redistribuables MS VC. L'économiseur d'écran est seulement 1 Mo, et il est ridicule de demander à l'utilisateur de faire autant de changements dans son ordinateur juste pour un économiseur d'écran. Je ne veux pas utiliser l'astuce pour mettre les dlls MS CRT dans le même chemin d'application avec l'économiseur d'écran parce que les économiseurs d'écran sont installés dans system32, et je veux installer les fichiers possibles minimum là.
Enfin, je préfère produire un programme monolithique, plutôt qu'un tas de DLL
j'ai essayé une compilation statique complète et un lien de QT, mais ce n'est pas autorisé (si je comprends bien, par LGPL) et il est également recommandé d'après ceci: 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
Après avoir essayé des solutions dans différentes directions, il semble le plus réaliste consiste à utiliser le QTCore4.dll et QTGui4.dll, mais les ayant lié statiquement à MSVCRT. De cette façon, ni mon programme, ni les DLL QT auront des dépendances sur les DLL MSVCRT.
Y at-il une solution à cela? (Je suis nouveau à la programmation QT)
Merci, Michael
Mise à jour: J'ai construit QT statiquement, j'ai inclus dans l'éditeur de liens et la QTcore.lib construire mon applitation aussi statiquement avec/MT. Je vois maintenant que l'économiseur d'écran dépend de MSVCR80.DLL, probablement parce que la construction statique de QT (QTcore.lib) en dépend aussi. MSVCR80.DLL est une barrière pour moi parce que comme je l'ai dit ci-dessus je ne peux pas déployer sur XP, et Vista. Donc, la question est maintenant: Y at-il un moyen de construire une application QT sans dépendance sur MSVCR80.DLL? Merci pour toute aide Michael – Mike