+ Répondre à la discussion
Affichage des résultats 1 à 6 sur 6
  1. #1
    Nouveau Membre du Club
    Inscrit en
    janvier 2005
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : janvier 2005
    Messages : 63
    Points : 36
    Points
    36

    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 éclairé

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

    Informations forums :
    Inscription : février 2010
    Messages : 242
    Points : 387
    Points
    387

    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
    Nouveau Membre du Club
    Inscrit en
    janvier 2005
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : janvier 2005
    Messages : 63
    Points : 36
    Points
    36

    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
    Modérateur

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

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

    Informations forums :
    Inscription : mai 2009
    Messages : 1 007
    Points : 1 701
    Points
    1 701

    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
    Nouveau Membre du Club
    Inscrit en
    janvier 2005
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : janvier 2005
    Messages : 63
    Points : 36
    Points
    36

    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
    Nouveau Membre du Club
    Inscrit en
    janvier 2005
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : janvier 2005
    Messages : 63
    Points : 36
    Points
    36

    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.

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •