lundi 16 février 2015

Qt- Déployer une application - Suite (1)

Nous avons vu lors du post précédent, comment tenter de déployer une application rapidement. Mais cela ne fonctionne pas très bien. Nous allons tenter d'aller plus loin. En effet le message suivant :

This application failed to start because it could not load the Qt platform plugin "windows"
n'est pas si facile à corriger. J'ai pensé qu'il s'agissait de copier la dll qwindows.dll dans un répertoire nommé "platforms" mais lorsque je double clique sur mon exécutable ainsi déployé, j'obtiens le résultat d'exécution suivant :

Qt - Déploiement rapide - Résultat d'exécution vide !
ce n'est pas fameux, fameux. L'application est vide ! Rien ne s'affiche.

D'après les explication sur le site Stack Overflow : Application Failed to Start
Il s'agirait de copier le répertoire entier du plugin "plateform" du Kit concerné ...

C'est à dire que, pour une application générée avec le kit MinGW v4.9.1 et déployée, il faudrait copier le répertoire complet :

C:\Qt\5.4\mingw491_32\plugins\platforms
dans le répertoire de déploiement de l'application. Le problème est que cette dll qwindows, se trouve un peu partout, pour chaque Kit de développement mais également dans :

C:\Qt\Tools\QtCreator\bin\plugins\platforms

un vrai bordel ! Je dois y aller ... désolé de vous laisser ainsi mais je reviendrai bientôt torde le cou de ce problème crucial.

En attendant, Have Fun !

Solution dans le Qt Assistant

Je pense qu'il faut poursuivre en lisant la page suivante :

 http://qt.developpez.com/doc/4.7/deployment/

On peut installer et déployer les DLL grâce à l'outil :

http://www.dependencywalker.com/

Et pour terminer, tout se trouve dans le Qt Assistant :

L'aide de Qt le Qt Assistant
Il faut taper "deploy" dans la barre de recherche :

Déployer une Application Qt
Même l'outil Dependency Walker y est référencé ... c'est pour dire ;)

Autre outil : Windows Deployement Tool qui se trouve dans le répertoire de chacun des Kits.
windeployqt [options] [files] ... je vous laisse découvrir.

Déployer une application avec Qt (Suite 2)



Qt- Déployer une application - Introduction

Mon conseil pour déployer une application Qt. C'est tout simple : vous créez un répertoire "Deployed" vous y mettez l'exécutable que vous souhaitez déployer puis vous double-cliquez dessus :

Qt - Déployer une application
Il vous suffit ensuite d'aller chercher les DLLs manquantes correspondantes, pour les copier dans le répertoire "Deployed".

Pour l'exemple clocks.exe on aura copié les DLL :
Qt5Quick.dll
Qt5Qml.dll
Qt5Network.dll
Qt5Gui.dll
Qt5Core.dll
icuin53.dll
icudt53.dll
icuuc53.dll
et bien sûr clocks.exe

D'aucuns diront que ce n'est pas très propre ... et alors ? Ça fonctionne.

Vous aurez certainement d'autres DLLs à copier suivant la plateforme où vous souhaiterez faire fonctionner votre application.

Des DLLs sont également dans :
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\redist
Visual Studio Express 2013
msvcr120.dll
msvcp120.dll

Et encore un truc du type truc et astuce, un peu de magie :

Qt\Qt5.1.1\5.1.1\msvc2012\plugins\platforms

Créer un répertoire "platforms" pour y mettre la qwindowsdll

samedi 14 février 2015

Déplacer un projet Qt dans le répertoire de développement

Vous souhaitez conserver les exemples tels quels et commencer à travailler dans le répertoire de de votre choix.

Donc, je prends le projet Clock au fin fond de l'arborescence C:\Qt\Examples\Qt-5.4\quick\demos\clocks et je le déplace dans mon répertoire de travail. Que va t-il se passer ?

Premier problème : une erreur d'un autre monde dans le répertoire de build :
Une version incompatible existe déjà ...

Vous venez de déplacer le projet et pourtant la compilation s'effectue toujours au même endroit dans : C:\Qt\Examples\Qt-5.4\quick\demos\build-clocks-Desktop_Qt_5_4_0_MSVC2013_OpenGL_64bit-Debug

Oui j'utilise : Qt 5.4 et Visual Studio 2013 ;)

Créer un répertoire de build

Créer un répertoire où vous souhaitez voir le résultat de compilation édition des liens s'enregistrer. Pour ce faire, allez dans "Projets"->Shadow Build :

Créer un répertoire de shadow build
Et pointez vers le répertoire que vous venez de créer.
Cela ne suffit pas ! Il vous faudra :

Placez le fichier shared.h au bon endroit

L'erreur est maintenant : dans le fichier main.cpp avec la directive include :
#include "../../shared/shared.h"
qui fait référence au fichier qui se trouve dans :
C:\Qt\Examples\Qt-5.4\quick\shared\shared.h

Vous pouvez placer une copie de ce fichier au bon endroit et tout fonctionne à nouveau.

vendredi 13 février 2015

Qt - Maintenance tool - Maintenir Qt

La maintenance de Qt s'effectue grâce à l'outil "Qt Maintenance Tool". Cet outil permet énormément de choses. En particulier la gestion des paquets, c'est à dire des différents éléments de Qt que vous avez installés sur votre disque dur, votre plateforme de développement.

Qt Maintenance Tool - Fenêtre principale
Cet outil permet la gestion des versions, des kits de compilation ...

Depuis que j'ai modifier les effet graphiques de ma plateforme de développement, c'est moins beau mais cela va beaucoup plus vite :

Qt Maintenance Tool - Les différents packages
Gros problème de maintenance, le processus se bloque.

J'arrête de jouer avec avec les downloader online :
qt-opensource-windows-x86-1.6.0-7-online.exe et autre
qt-opensource-windows-x86-1.6.0-8-online.exe
d'ailleurs y a combien de versions de ce truc ?!

et je télécharge la version complète pour voir ...



jeudi 12 février 2015

Qt - Erreur et problèmes rencontrés - Solutions

Je n'ai pas encore assez d'expérience pour me permettre de déclarer que la Plateforme Qt est stable ou instable. Pour moi, ce n'est vraiment pas très stable. On ajoute ou on retire un Kit de développement, on déplace un projet et tout est cassé ! Alors pour mieux maîtriser le développement Qt et retomber sur ses pattes, voici quelques conseils, astuces et problèmes résolus.

Error CL.exe n'est pas reconnu comme commande interne

J'imagine que c'est le compilateur/linker et bien voici qu'il a été lancé deux fois et l'erreur est :

xx:xx:xx: Débute : "C:\Qt\Tools\QtCreator\bin\jom.exe"
C:\Qt\Tools\QtCreator\bin\jom.exe -f Makefile.Debug
cl -c -nologo -Zm200 -Zc:wchar_t -FS -Zi -MDd -GR -W3 -w34100 -w34189 -EHsc /Fddebug\application.pdb -DUNICODE -DWIN32 -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I"C:\Qt\5.4\msvc2013_64_opengl\include" -I"C:\Qt\5.4\msvc2013_64_opengl\include\QtWidgets" -I"C:\Qt\5.4\msvc2013_64_opengl\include\QtGui" -I"C:\Qt\5.4\msvc2013_64_opengl\include\QtCore" -I"debug" -I"." -I"C:\Qt\5.4\msvc2013_64_opengl\mkspecs\win32-msvc2013" -Fodebug\ @C:\Users\Mabyre\AppData\Local\Temp\main.obj.328.31.jom
'cl' n'est pas reconnu en tant que commande interne
ou externe, un programme ex‚cutable ou un fichier de commandes.

On dirait que CL.exe n'est pas reconnu comme commande interne !? Bien sûr c'est faux !

Solution à l'erreur : "cl n'est pas reconnu"

 J'ai supprimé tous les fichiers dans le répertoire de compilation :
debug
release
Makefile
Makefile.Debug
Makefile.Release

Et tout est rentré dans l'ordre :

Qt - Exécution du fameux exemple - Clock
Le Répertoire de compilation se trouve ici :
C:\Qt\Examples\Qt-5.4\quick\demos\build-clocks-Desktop_Qt_5_4_0_MSVC2013_64bit-Debug

Qt Maintenance tool (Maintenir Qt) se bloque à 99%

Stable ou instable ? Oups, oups, oups, je lance l'outil ... il reste bloqué à 99 % pendant plusieurs minutes :

Qt Maintenance Tool bloqué à 99%
C'est sans doute le processus MaintenanceTool.exe *32 qui est bloqué, je le supprime, le relance, rien n'à faire, je redémarre ma machine et puis ça repart.

OUF ! pour cette fois ...

Seulement voilà, quelques jours après, je souhaite ajouter un "paquet" et boum bloqué, à nouveau !
Je m'aperçois que chaque fois que l'on quitte l'application d'installation des paquets, le processus MaintenanceTool.exe n'est pas arrêté :

Installation Qt - Bloquée à 99% !?
Qu'est ce qui empêche Qt de se mettre à jour ?

Qt Maintenance Tool se bloque - Solution

Pour répondre à la question : qu'est ce qui empêche Qt de se mettre à jour ? Je suis allé voir le fichier : C:\Qt\InstallationLog.txt et j'ai pu lire une ligne :

Warning: Could not delete file C:/Users/UserName/AppData/Local/Temp/qt_temp.ER2640: Le processus ne peut pas acc?der au fichier car ce fichier est utilis? par un autre processus.

Bref,  j'ai supprimé tous ces fichiers temporaires ....

Il peut y avoir le fichier MaintenanceTool.dat corrupted ... en le renommant, et en exécutant MaintenanceTool.exe celui-ci indique une installation corrupted à réinstaller from scratch. Ce n'est pas ce que je souhaite faire ...

Encore que tout ce temps perdu ... j'aurais peu être mieux fait de réinstaller from scratch ... Qt m'inquiète un peu pour lancer un développement professionnel. Comment être sûr qu'il ne va pas planter à chaque instant. C'est vraiment flippant !

Remarque : Lorsque l'on renomme le fichier .dat MaintenanceTool indique une install corrompue mais il arrive à s'arrêter tandis que quand il est bloqué, il faut aller supprimer le processus "à la mano" ...

Finalement je supprime tout et je recommence, merci Qt.

Qt Tutoriel & Notes rapides

Partir à la découverte de Qt 5.4.0 et créer le plus rapidement possible une application exploitable avec les outils de Qt : Qt Creator.

Application Qt Quick

Qt propose un grand nombre d'applications... widgets, console ui. Pourquoi pas une Qt Quick ? Feu :

Menu Fichier->Nouveau fichier ou projet...

Qt 5.4.0 - Création d'une application Qt Quick
Une fois l'application Qt Quick crée avec le nom "MyApplicationQtQuick", voici ce que j'ai dans mon répertoire :

Fichiers de l'application Qt Quick
Le fichier .pro c'est le projet, c'est le fichier que l'on ouvre avec Qt Creator qui me présente l'arborexcence sous la forme :

Application Qt Quick dans Qt Creator
Menu Compiler->Exécuter, j'obtiens le résultat d'exécution suivant :

Exécution de l'application Qt Quick
J'imagine qu'à la compilation pour l'exécution, Qt Creator a créé un tas de choses sur mon disque dur :

Qt Creator a généré un exécutable
Je double clique sur l'exécutable : MyApplicationQtQuick.exe, j'obtiens le résultat suivant :

Erreur à l'exécution de mon .exe
Mon exécutable ne trouve pas la DLL Qt5Widgets.dll et c'est normal, il va me falloir faire deux ou trois petites choses afin de déployer ma nouvelle application QtQuick.

Qt Quick vs Qt C++

Par rapport à Qt C++ il y a de nombreuses différences.
Qt Quick utilise le "QML" c'est à dire le langage déclaratif d'interface utilisateur.

Le fichier main.cpp se résume alors à  :

#include <QApplication>
#include <QQmlApplicationEngine>

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);

    QQmlApplicationEngine engine;
    engine.load(QUrl(QStringLiteral("qrc:/main.qml")));

    return app.exec();
}

Lancer le moteur d'application avec comme argument le fichier main.qml en langage déclaratif d'interface utilisateur.








vendredi 6 février 2015

Qt Installation (Suite 2)

Vous souhaitez installer Qt ? Voici quelles sont les précautions à prendre, où et quoi installer. Ça parait simple mais pourtant, vous vous faites rapidement piéger par le site :
http://www.qt.io/download-open-source/

J'ai cliqué sur le premier bouton "Dowload now" et j'ai commencé à jouer avec le "downloader online" :
qt-opensource-windows-x86-1.6.0-7-online.exe puis la version suivante
qt-opensource-windows-x86-1.6.0-8-online.exe

J'ai utilisé le tool Qt Maintenance et là, je suis entré dans processus instable, j'ai essayé de mettre à jour les "paquets", c'était impossible, le processus se bloquait ... infernal ! Suppression des fichiers temporaires, termination du processus redémarrage, ça à fonctionné une fois puis plus rien ! Désinstallation complète, et tentative de réinstallation ... BLOCAGE TOTAL.

Et enfin, j'ai découvert le bouton "View All Downloads" que je vous présente, voici :

Installer la bonne version de Qt
Là, j'ai pu alors installer uniquement ce que vous voulez, comme par exemple :

qt-opensource-windows-x86-msvc2013_64-5.4.1.exe

J'ai même retrouvé l'Add-in pour Visual Studio que je croyais avoir définitivement perdu !

Visual Studio Add-in 1.2.4 for Qt5

Voici donc ce que j'ai installé :


Qt 5.4.1 Installateur - MSVC2013

C'est beaucoup moins complet que l'installateur online !?



Du coup la question qui se pose, c'est comment sont gérés les différents Kits de compilation ? Car je vous rappelle que Qt doit permettre de développer des applications multiplateforme.

Bref, c'est pas gagné ! Qt c'est beau sur le papier mais en pratique c'est bourré de pièges.

Qt Installation - Encore un piège

J'ai noté quelque part que je trouvais curieux que Qt me demande de nommer le raccourci vers l'exécutable Qt Creator.exe. Je ne sais pas pourquoi mais j'ai l'intuition que c'est lié, il faut choisir soigneusement le nom du dossier d'installation de Qt.

Voici le piège :

En lançant l'installation depuis qt-online, Qt s'est installé dans :
C:\Qt\5.4 

Et en réinstallant depuis : qt-opensource-windows-x86-msvc2013_64-5.4.1.exe, qt s'est installé dans :
C:\Qt\Qt5.4.1\5.4

Alors devinez quoi ? Toutes les procédures de déploiement, tous les batchs que j'avais fait pour une installation précédente sont à refaire !

Qt Installation - Des pièges des pièges et encore des pièges

Cette fois, c'est l'outil Maintenir Qt qui n'est pas configuré. Comme j'ai téléchargé l'installe directement sans passer par le online on me punit, je dois configurer un dépôt valide !

Qt Maintenance Impossible !

Mise à jour le 10 Août 2015

Je tente de lancer "Qt Maintenance Tool", il tourne en boucle :

Qt Maintenance Tool - En boucle infinie !
Décidément l'installation de la bonne version de Qt sur la bonne plateforme ce n'est pas gagné !

Mise à jour Février 2017

Allez encore une petite pour la route, voici le "nouveau site web de Qt Open Source" :

Qt Open Source Download

Franchement ? Vous trouvez ça mieux que l'ancien ?
Je tente la mise à jour Qt pour Visual Studio 2013 ...


Qt 5.8.0 for Windows 64-bit VS 2013
Sur ma plateforme de développement, je vous tiens au courant...

On se tient au jus ;)

jeudi 5 février 2015

Qt Version 5.0 et Visual Studio

Du temps a passé, de l'eau a coulée sous les ponts, depuis mon dernier post sur ce blog. Je m'aperçois que j'ai travaillé sur Qt en 2012 avec Visual Studio 2010 et Qt v4.8.3. Il me semble que les problèmes que j'ai eu à l'époque étaient légitimes, je n'avais pas réussi à passer assez de temps pour faire fonctionner tout cela correctement.

L'idée est de vérifier si cela fonctionne mieux aujourd'hui, si c'est plus facile d'accès. On parle maintenant de Qt v5.0 et de l'Add-in Visual Studio pour Qt 5 en version 1.2.1.

Quelle version de Visual Studio pour Qt v5.0 ?

Cette fois, au lieu d'aller m'enregistrer sur le site commercial, si j'essayais la version Open source ...

Je télécharge :
qt-opensource-windows-x86-1.6.0-7-online.exe

J'installe Qt v5.4 sur ma machine Windows 7, je lance "Qt Creator" et BOUM !!! :

Qt Creator failed to create OpenGL context
Qt me demande d'installer un driver fournissant OpenGL 2.0 ou supérieur.
Ça commence bien, ce n'est pas gagné, l'install de Qt aurait pu me prévenir, l'application Qt Creator est complètement plantée c'et du plus mauvais effet.

Qt Creator failed to Create OpenGL context

Qt exécute OpenGL tandis que Windows c'est plutôt DirectX. Donc pour exécuter Qt Creator sur Windows, il vaut mieux regarder les caractéristiques et la puissance de la carte vidéo.

Comme, j'exécute Qt sur une machine virtualisée, il me faut regarder les caractéristiques de la carte vidéo virtualisée, de plus prêt :

Configuration de l'affichage de la machine virtualisée
Il me faut cocher : "Activer l'accélération 3D" et 2D sinon Qt Creator ne fonctionne pas. Le message d'erreur est mauvais car il aurait tendance à faire croire qu'il faut installer un Driver OpenGL.

Add-In VS pour Qt 5.0 - Qt est-ce vraiment de l'Open Source ?

Pendant ce temps, j'ai installé Visual Studio 2012 Express édition. Sur le site de développez.com, on me dit que je peux trouver "Visual Studio Add-In 1.2.0 pour Qt 5" seulement lorsque j'arrive sur le site de Qt déjà le site s'appelle "Qt Open Source & Commercial" bonjour le mélange des genres.

On peut y voir que la première version qui possède l'add-in pour Visual Studio est la version professionnelle à 174 $ / mois ! Au secours !

C'est un peu délirant.
Je vais partir à la recherche des sources.

Qt Visual Studio Add-In

Qt Documentation - C'est la stupéfaction

Je m'aperçois que tous les liens qui pointaient vers des pages de la documentation, sur des exemples particuliers, comme le lien suivant :


Maintenant tous ces liens pointent vers :


La documentation de Qt manque vraiment de suivi. C'est une catastrophe !

dimanche 1 février 2015

Qt - Visual Studio Add-In


Vous cherchez un Add-In pour Visual Studio, c'est à dire un template VS qui créé un projet pour Qt à l'aide de Visual Studio ... En 2012, je suis passé à côté de ce sujet, ayant installé la version commerciale de Qt l'add-in Visual Studio était compris. Qu'en est-il aujourd'hui ?

Visual Studio Add-In 1.2.0 for Qt 5 Released :
http://blog.qt.io/blog/2012/12/19/visual-studio-add-in-1-2-0-for-qt-5-released/

Lisez les commentaires en bas de page, on vous dit que votre plateforme Visual Studio 2010 sera définitivement déstabilisée .... Grrrrr !

Tout ceci n'est pas très sérieux, la page suivante :
http://www.qt.io/download/

Montre clairement qu'il faut payer !

http://openclassrooms.com/courses/utiliser-qt-avec-visual-studio-2010
On vous explique comment positionner les variables d'environnement pour recomiler Qt avec Visual Studio mais ne cherchez pas c'est obsolète le page qt.nokia a disparu !

L'Add-in de Visual Studio pour Qt est-il devenu un fantasme qui n'a pas été mis à jour ?

http://www.qt.io/download-open-source

En fait il faut absolument cliqué sur "View All Download" pour retrouver :

Visual Studio Add-in 1.2.4 for Qt5 (156 MB) (info)
Pendant que vous lisez ce post, 3 nouvelles versions de Qt viennent de sortir ... ;)