IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Qt Discussion :

Déployer un programme simplement


Sujet :

Qt

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 70
    Points : 63
    Points
    63
    Par défaut Déployer un programme simplement
    Hello,

    je tente deséspérement de faire tourner un programme Qt5 sur une autre machine que la mienne, et pour l'instant je n'ai toujours pas réussi.

    Démarche : quand je lance mon programme depuis le folder release du projet, bien évidemment il plante (car je n'ai pas le <qt_dir>/bin dans le PATH)

    Du coup je lui donne progressivement les DLL qu'il me demande pour pouvoir tourner, et au bout d'un moment il démarre enfin. OK

    Sauf que, ya deux choses que je ne pige pas :

    1/ Pourquoi je dois lui donner 19 DLL à manger alors que partout je peux lire que généralement QTGui, QTWidget, et QTCore suffisent ? Actuellement, j'utilise toutes ces DLL (edit: après inspection a priori c'est mon utilisation de WebKit qui ajoute toutes des dll) :

    D3DCOMPILER_43.DLL
    ICUDT49.DLL
    ICUIN49.DLL
    ICUUC49.DLL
    LIBEGL.DLL
    LIBGLESV2.DLL
    QTCORE5.DLL
    QTGUI5.DLL
    QTMULTIMEDIA5.DLL
    QTMULTIMEDIAWIDGETS5.DLL
    QTNETWORK5.DLL
    QTOPENGL5.DLL
    QTPRINTSUPPORT5.DLL
    QTQML5.DLL
    QTQUICK5.DLL
    QTSQL5.DLL
    QTV85.DLL
    QTWEBKITWIDGETS5.DLL
    QTWIDGETS5.DLL




    2/ Mais surtout, POURQUOI quand je deploie ce programme sur une autre machine avec les mêmes DLL, il ne se lance pas (pas d'erreur, ni rien). Pourtant dependence walker m'indique que tout est bien chargé

    Bref, je desespère, je présume qu'installer Qt sur chaque machine résoudrait le problème, mais je ne peux pas faire downloader le SDK à chaque user, c'est juste pas possible.....

    Et j'ai aussi tenté la compilation statique, mais je n'ai jamais réussi à compiler Qt5 (l'opengl plante sans arret, que ce soit en mode desktop ou avec ANGLE et le directX sdk) ni QT4 (si, techniquement j'ai réussi à le compiler, mais c'est le nmake install qui plante...)


    Bref, à l'aiiiiide



    PS : je suis sur windows 7 64bits, je compile en 32bits via le compilo MSVC2010

  2. #2
    Membre averti

    Homme Profil pro
    Inscrit en
    Février 2010
    Messages
    243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2010
    Messages : 243
    Points : 398
    Points
    398
    Par défaut
    As-tu installé les redist MSCV correspondant sur la machine cible ?
    Ils se trouvent peut-être même dans le dossier Qt5 précompilé

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 70
    Points : 63
    Points
    63
    Par défaut
    Citation Envoyé par ness522 Voir le message
    As-tu installé les redist MSCV correspondant sur la machine cible ?
    Ils se trouvent peut-être même dans le dossier Qt5 précompilé
    Hello,

    oui, j'inclu systématiquement l'installateur vcredist_x86.exe au cas où, mais je viens de le tester à l'instant sur une VM sans les redist msvc, et normalement l'erreur est explicite quand ils ne sont pas installé. Dans mon cas je n'ai pas d'erreur (et je les vois bien chargés quand je scrute avec dependance walker)



  4. #4
    Membre expérimenté

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2009
    Messages
    1 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2009
    Messages : 1 009
    Points : 1 738
    Points
    1 738
    Par défaut
    Tu as essayé de lancer l'appli avec le profiling de Dependency Walker pour voir s'il y a un problème ?

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 70
    Points : 63
    Points
    63
    Par défaut
    Citation Envoyé par Troudhyl Voir le message
    Tu as essayé de lancer l'appli avec le profiling de Dependency Walker pour voir s'il y a un problème ?
    ah, je ne connaisais même pas cette fonction !!

    bon, en tout cas j'ai désormais une erreur un peu plus explicite :

    GetProcAddress(0x765E0000 [ADVAPI32.DLL], "SystemFunction036") called from "MSVCR100.DLL" at address 0x6F0BB4D6 and returned 0x765E1919.
    Failed to load platform plugin "windows". Available platforms are:

    DllMain(0x752D0000, DLL_PROCESS_DETACH, 0x00000001) in "IMM32.DLL" called.
    DllMain(0x752D0000, DLL_PROCESS_DETACH, 0x00000001) in "IMM32.DLL" returned 1 (0x1).
    DllMain(0x762D0000, DLL_PROCESS_DETACH, 0x00000001) in "MSCTF.DLL" called.
    DllMain(0x762D0000, DLL_PROCESS_DETACH, 0x00000001) in "MSCTF.DLL" returned 1 (0x1).
    DllMain(0x6D530000, DLL_PROCESS_DETACH, 0x00000001) in "QTWEBKITWIDGETS5.DLL" called.
    DllMain(0x6D530000, DLL_PROCESS_DETACH, 0x00000001) in "QTWEBKITWIDGETS5.DLL" returned 1 (0x1).
    DllMain(0x73920000, DLL_PROCESS_DETACH, 0x00000001) in "LIBEGL.DLL" called.
    DllMain(0x73920000, DLL_PROCESS_DETACH, 0x00000001) in "LIBEGL.DLL" returned 1 (0x1).
    DllMain(0x6BAA0000, DLL_PROCESS_DETACH, 0x00000001) in "D3D9.DLL" called.
    DllMain(0x6BAA0000, DLL_PROCESS_DETACH, 0x00000001) in "D3D9.DLL" returned 1 (0x1).
    DllMain(0x72B00000, DLL_PROCESS_DETACH, 0x00000001) in "DWMAPI.DLL" called.
    DllMain(0x72B00000, DLL_PROCESS_DETACH, 0x00000001) in "DWMAPI.DLL" returned 1 (0x1).
    DllMain(0x73B80000, DLL_PROCESS_DETACH, 0x00000001) in "D3D8THK.DLL" called.
    DllMain(0x73B80000, DLL_PROCESS_DETACH, 0x00000001) in "D3D8THK.DLL" returned 1 (0x1).
    DllMain(0x707E0000, DLL_PROCESS_DETACH, 0x00000001) in "QTSQL5.DLL" called.
    DllMain(0x707E0000, DLL_PROCESS_DETACH, 0x00000001) in "QTSQL5.DLL" returned 1 (0x1).
    [...]
    J'ai désormais un peu plus de ressource pour googler mon problème, mais si ca évoque déjà quelque chose pour vous je suis preneur...


    merci

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 70
    Points : 63
    Points
    63
    Par défaut trouvé
    bien, j'ai résolu mon problème !

    alors, tout d'abord j'ai appris qu'il fallait, en plus des DLL sus-mentionnées, ajouter les plugins Qt utilisés par l'application dans un sous-dossier plugins/. Certains d'entres eux semblent obligatoires (plugins/platform/windows.dll par exemple) d'autres dépendent de ce qu'on utilise dans l'application. J'ai par exemple dû ajouter ceux qui gèrent les images car sinon mes icônes n'apparaissaient pas dans ma toolbar.... Si quelqu'un a une idée sur "comment avoir la liste exhaustive des plugins utilisés par l'application ?"

    Je suis arrivé ensuite au moment bizarre où le programme ne fonctionnait QUE quand je le lancais via le module de profiling de Dependency Walker (mais pas quand je double cliquais dessus...)

    J'ai résolu le problème en ajoutant un fichier qt.conf avec dedans :

    [Paths]
    Plugins = plugins
    Bref, le mystère demeure sur certains points, mais au final tout fonctionne désormais comme un charme !

    En espérant que ce post en aide certains, car j'ai bien galéré sur ce coup...

    Merci pour la piste du module de profiling

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 5
    Dernier message: 20/05/2015, 09h35
  2. Réponses: 2
    Dernier message: 27/01/2014, 12h50
  3. Réponses: 28
    Dernier message: 05/07/2013, 10h05
  4. [Débutant] Déployer un programme sur une carte ChipworkX
    Par lucas14570 dans le forum C#
    Réponses: 1
    Dernier message: 15/05/2013, 13h19
  5. déployer un programme VB6 avec un logiciel gratuit
    Par megamario dans le forum Installation, Déploiement et Sécurité
    Réponses: 7
    Dernier message: 04/12/2010, 20h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo