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

Plateformes Discussion :

Erreur de déploiement vraiment étrange


Sujet :

Plateformes

  1. #1
    Membre averti
    Erreur de déploiement vraiment étrange
    Bonjour,

    J'ai créer une application Qt et je rencontre un problème curieux lors du déploiement.

    Mon objectif est de créer une application standalone. On copie et ça roule.
    J'ai donc copier les DLL de Qt à la racine ainsi que les dossiers plateform et sqldrivers que j'ai copier depuis le dossier "C:\Qt\Qt5.8.0\5.8\msvc2015_64\plugins" de mon ordinateur de développement.

    Lorsque je fait cela, j'ai une erreur MYSQL m'indiquant que les drivers ne peuvent êtres chargés avec une liste de drivers disponibles qui n'est pas vide.

    Par contre, si je copie mes dossiers plateform et sqldrivers dans un dossier "C:\Qt\Qt5.8.0\5.8\msvc2015_64\plugins" sur l'ordinateur du client tou fonctionne très bien.

    Je trouve donc super curieux qu'en copiant tout dans le dossier de mon executables, les plugins sont correctement chargés, mais ma connexion SQL ne s'effectue pas.

    ce que j'ai déjà testé afin de vérifié que me plugins sont correctement chargés :
    - Si je supprime complétement le dossier sqldrivers j'obtiens la même erreur que si il se situe dans mon dossier de l’exécutable sauf que ma liste de drivers disponible est vide (logique).
    - Si je supprime complétement le dossier plateform le programme ne se lance pas (logique).

    ce que j'ai déjà testé afin de vérifié que libmysql.dll est bien placé :
    - Si le dossier sqldrivers se trouve dans C:\Qt\Qt5.8.0\5.8\msvc2015_64\plugins le programme se lance correctement

    Quelqu'un à déjà rencontré ce souci ?

    Merci d'avance
    J'aime pas les épinards... Mais alors pas du tout

  2. #2
    Membre averti
    Le mystère s'épaissit...

    J'ai ajouter ça dans mon main :

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    QApplication application(p_argc, p_argv);
    // On défini le chemin des bibliotheques Qt
    QCoreApplication::addLibraryPath(QCoreApplication::applicationDirPath() + "/qt");


    Ce code défini un nouvel emplacement pour les bibliotheques. Ici il s'agit du dossier qt qui se situe dans le dossier de mon application.
    J'y ai déplacer tous mes modules et il sont correctement chargés et utilisés (mes images svg sont correctement chargés par exemples).

    Les deux seules modules qui posent problème sont "platform" qui, apparemment est chargé avant mon appel à addLibraryPath et je doit donc directement le mettre dans le dossier de mon application. Donc c'est un problème sans en être un.

    Et enfin le module sqldrivers qui est pourtant bien chargé car le drivers apparaissent dans ma liste de drivers disponibles, mais le fait de le mettre dans un autre dossier que "C:\Qt\Qt5.8.0\5.8\msvc2015_64\plugins" me donne l'impression qu'il ne parvient pas à charger libmysql.dll qui se trouve à la racine du programme.
    J'aime pas les épinards... Mais alors pas du tout