Bienvenue sur le forum !

Si vous souhaitez rejoindre la communauté, cliquez sur l'un de ces boutons !

Qt 5 : 5.9.0 - Qt Creator : 4.3.0 - Qt Installer : 2.0.3 - JOM : 1.1.2 - Qt Build suite : 1.7.0 - VS Qt 5 : 2.0.0

The application failed to start because it couldn't find or load the plugin "windows"

Salut,
Un ami à moi a tester mon programme, il a eu à peu près cette erreur (titre), et je ne sais pas pourquoi...
Voici mon architecture:
./monprog.exe
./ressources du programme (png, ...)
./libstdc++-6.dll
./libgcc_s_dw2-1.dll
./libwinpthread-1.dll
./icudt54.dll
./icuin54.dll
./icuut54.dll
./Qt5Core.dll
./Qt5Gui.dll
./Qt5Widgets.dll
./(des dlls de la sfml car je l\'utilise)
./platforms/qwindows.dll
Donc voilà, je ne vois pas le problème, j'ai bien pris les dll du dossier mingw (qui est mon compilateur), pas autre part, donc normalement tout devrait bien se passer...
Merci de votre aide.
«1

Réponses

  • Bonjour !
    Encore un problème de déploiement sous OuinOuin...
    Ça ne pourrait pas s'automatiser ? Une application qui copierait les bons trucs au bon endroit ?
    Si quelqu'un me donne les spécifications je veux bien m'y mettre...
  • S66S66
    November 2015 modifié
    Oh désolé, sous Windows 10.
    Il a testé sous Windows 10 et j'ai compilé sous Windows 10.
  • November 2015 modifié
    Ça ne pourrait pas s'automatiser ? Une application qui copierait les bons trucs au bon endroit ?
    Oui, ça serait pas mal. On pourrait par exemple l'appeler "windeployqt". Et le mettre dans le répertoire "bin" des kits Qt.

    Le problème, c'est qu'il y a déjà une application de ce nom à cet endroit. Ça ne serait pas formidable si cette application faisait ce que l'on voulait ?

    Ce qui serait bien alors, c'est que l'on écrive des tutos pour expliquer comment déployer une application Qt et que l'on donnait le lien vers la doc de cet outil.

    Quelque chose similaire à ça par exemple : http://guillaume.belz.free.fr/doku.php?id=deployer_une_application_qt.

    Ca serait vraiment bien d'avoir tout cela...
  • November 2015 modifié
    Salut,
    Il y a déjà un petit tuto : forum.qtfr.org/discussion/18027/deployer-un-programme-qt5-sur-windows-avec-windeployqt#latest
    Le problème de windeployqt est qu'il est assez récent (à partir de Qt5.3 où quelque chose comme ça).
    De plus, il semble aussi oublier des dépendances, enfin, d'après une discussion pour laquelle j'avais préconisé windeployqt.
  • Je me souviens plus des dépendances "oubliées" (j'avais l'impression qu'il ajoutait au contraire plus de dépendances)
  • Merci mon gbdivers j'aime bien quand je te déclenche.
    Donc la réponse à S66 c'est RTFM les liens de G.B. ?
    Et c'est la réponse à donner systématiquement à tout utilisateur de OuinOuin qui bute sur le déploiement ?
    Moi ça me va. Ça me rassure car je n'ai pas Windows et ne peux donc tester.
  • (j'avais l'impression qu'il ajoutait au contraire plus de dépendances)
    oui aussi, c'est le troisième problème. Mais beaucoup moins grave, du moment que l'application fonctionne.

    Ah, j'ai retrouver la discussion sur les dépendances "oubliées" : forum.qtfr.org/discussion/comment/115940/#Comment_115940
    Pour reprendre l'exemple "QML Video Exemple", non seulement windeployqt oublie les dll des modules appelés dans le qml (Qt5Multimedia.dll...), mais c'est pire que cela, puisque il corrompt un fichier dll. En effet, la dll Qt5Core.dll est corrompu.
    Alors qu'avec l'exemple "Media Player Exemple", pas de problème.
    Par contre, on remarquera que la date de modification de la dll Qt5Core.dll est la date d’exécution de windeployqt, et ceux, sur les 2 exemples. J'ai l'impression que windeployqt ne fait pas que copier cette dll mais la modifie.

    C'est un problème qui semble récurant seulement sur les project Qt Quick.
  • S66S66
    November 2015 modifié
    Le problème, c'est que c'est balo, windeployqt ne change rien.
    Je m'explique: il a rajouté quelques dlls, dossiers de fichiers, etc.
    J'ai refais mon installation avec inno setup, mon ami télécharge et installe, puis teste, et toujours le même problème
    Et là, vous dites quoi ?
  • Moi je dis rien, je me marre.
    Vous ne voulez vraiment pas qu'on essaie ensemble de faire un truc qui fonctionne ?
  • Et ton setup fonctionne sur ta machine ?
    En ayant bien sûr aucune variable d'environnement pointant sur Qt.
  • @PapaJaac
    Pas forcement que les miens, il y en a beaucoup d'autres. Sans compter la doc et les forums.

    Les débutants ont tendance naturellement à ne pas faire de recherche quand ils ont un problème. Il faut régulièrement leur rappeler qu'ils doivent dans un premier temps faire un minimum de recherche par eux même.

    D'ailleurs, j'avais commencé à faire le transfert de cet article sur le wiki (http://wiki.qtfr.org/installation_et_premiers_pas_avec_qt_5.5), si quelqu'un veut le faire, qu'il se gène pas (il faut aussi relire pour mettre à jour. Et ça serait pas mal d'ajouter une partie sur windeployqt en se basant sur le post de loupium)

    @loupium
    J'utilise Cpake pour créer mes paquets, du coup, je ne connais pas très bien windeployqt, mais il est possible d'indiquer les modules Qt à inclure dans le projet. Il faudrait voir les paramètres d'appel de windeployqt en détail. (Du coup, ton post avec la configuration de Qt Creator pour utiliser windeployqt n'est pas forcement une bonne approche, puisque tu n'appelles pas windeployqt en donnant la liste des modules. Il serait probablement mieux de créer une étape personnalisée dans le .pro, qui appellera windeployqt avec les modules).

    @S66
    On dit rien du tout. Tu voudrais que l'on dise quoi ? "Ca marche chez moi, donc le problème vient de toi"

    Dit autrement, comment veux tu que l'on puisse t'aider avec le peu d'information que tu donnes ? Je cites la fin de mon tutos :
    Si vous rencontrez des problèmes avec le déploiement, vous pouvez expliquer vos difficultés sur le forum QtFr.org, en précisant :

    * le kit utilisé ;
    * où vous avez trouvé vos fichiers ;
    * les modules Qt utilisés.
    Le mot clé est "précisant". Dire "j'utilise mingw et je prends dans le répertoire correspond", ce n'est pas de la précision. Il faut TOUT donner : le kit (les chemins définis dans compilateur, versions de Qt, kits, etc), les chemins COMPLETS de TOUS les fichiers que tu copies (source ET destination).
  • Jette un oeil dans Qt\5.5\Src\qttools\src\windeployqt et tu verras que mine de rien, il y a déjà du monde la dedans.
  • Oui gb mais j'ai lu certains de tes tutos ils sont très bons. Accepte les compliments stp.

    Quant à la démarche improductive, cela fait 10 ans que je la combats sur internet et en clubs infos. J'avoue que je fatigue et suis content de voir d'autres que moi s'efforcer d'indiquer les bonnes pratiques de signalement d'anomalies.
  • S66S66
    November 2015 modifié
    @gbdivers
    Qt 5.5.0
    MinGW 4.9.2 32 bit

    Le setup définis le workingdir de l'application, donc elle va chercher ses fichiers dans le dossier du workingdir.
    Et dans ce dossier il y'a les anciennes libs que j'ai cité en haut, plus:

    ./D3Dcompiler_47.dll
    ./libEGL.dll
    ./libGLESV2.dll
    ./Qt5Svg.dll
    ./iconengines/qsvgicon.dll
    ./imageformats/(quelques dlls)
    ./translations/(quelques qm)
    J'ai trouvé mes fichiers dans: C:/Qt/5.5/mingw492_32/bin + ceux de windeployqt, je suppose qu'il les a cherché là aussi.
    J'utilise:
    QWidget
    QFrame
    QLabel
    QPushButton
    QPixmap
    QDebug
    QPainter
    vector
    QMouseEvent
    QV/HBoxLayout
    QString et string
  • Petit Up, désolé, ma freebox a décidé de déconner et donc plus d'Internet. Mais maintenant ça marche (la freebox, pas le programme)
    Sinon, je ne peux pas modifier ma variable Path, puisque apparemment il n'y a pas les répertoires de Qt dedans...
    Voici ce que j'ai dans ma variable Path:
    %SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\EgisTec\MyWinLocker 3\x86;C:\Program Files (x86)\EgisTec\MyWinLocker 3\x64
  • et bien très bien,
    comme tes var sont vierges de Qt (je ne sais pas si l'expression est judicieuse ;) ) alors en théorie, tant que tu n'as pas mis toutes les dll nécessaires à ton appli, alors tu ne devrais pas être capable de la lancer par double-clique dans l'explorer, hormis si tu as des dll importantes dans system32.
  • J'ai déjà lancé par double-clique plusieurs fois des applis faites avec Qt...
    Windows 10 est bizarre. Me cache -t- il des choses à propos de Path ?
  • sans avoir mis les dll au niveau de ton exe ?
  • S66S66
    December 2015 modifié
    Eh bien, au début, ça marchait sans les dlls que windeployqt m'a rajouté
    Et ça marche aussi avec les dlls de windeployqt.
    Par contre, quand je vais dans la partie Projets de QtCreator, et que je regarde les détails de "Use System Environment Variables", à PATH, il y'a bien les dirs de Qt...
  • Qt Creator rajoute ses propres variables d'environnement, pour des raisons pratiques
    Par contre si en double cliquant sur ton exe il se lance, c'est que les dll Qt sont quelque part dans ton PATH.
    Pour en être sûr, ouvre une cmd et tape set
  • J'ai fais set, j'ai regardé à la ligne de Path, et il y est marqué la même chose que quand j'utilise le programme windows pour éditer mes variables d'environnement...
    Pas de ligne "PATH", que "Path", pourtant, dans la partie Projets de Qt, dans les vars d'environnement, il y'a PATH et pas Path...
  • les variables d'environnement ne sont pas sensibles à la casse.
  • Et... Pourquoi dans QtCreator Path a les répertoires de Qt, alors que quand je fais set, Path ne les a pas ?
  • December 2015 modifié
    parce que les variables d'environnement sont locales donc temporaires.
    Exemple : tu ouvres une cmd, tu modifie les variables d'environnement, elles seront modifiées que pour la cmd et les programmes lancés de cette cmd. Dès que tu quittes la cmd, tes var d'env temporaires sont perdues.
  • Mais du coup, quand je double clique mon programme dans l'explorer, pourquoi marche-t-il ?
    Windows 10 a un sérieux problème.
  • Je ne pense pas que la magie opère sous win10 (enfin je ne l'ai jamais essayé :-) )
    Ouvre ton exe avec dependancy walker, il te dira les dépendances de ton appli et tu pourras les localiser.
  • S66S66
    December 2015 modifié
    J'ai plein d'erreurs "Error opening file. Le fichier spécifié est introuvable (2)", avec des modules qui commencent tous par API-MS-WIN, qui sont dans Qt5Core.dll...
  • December 2015 modifié
    pour les API_MS_WIN ils sont normalement dans c:\windows\system32
    Chez moi aussi, il y a certaines de ces dll qui ne sont pas trouvées par depends mais sont présentent dans le répertoire.
    Regarde plutôt les dépendances non satisfaites au niveau des dll Qt ainsi que les libs tierces que tu pourrais utiliser.
  • Et... je fais ça comment ?
    (Sinon, j'ai vu, il n'ya pas que des API_MS_WIN, il a aussi des EXT_...)
    Un petit screen ?
    http://prntscr.com/9bt9gi
  • Re,
    Désolé, je n'ai pas vu une dll qui était cachée entre les API et les EXT, il y'a aussi EMClient.dll
Connectez-vous ou Inscrivez-vous pour répondre.