Partage
  • Partager sur Facebook
  • Partager sur Twitter

Installation de Qt

    22 juillet 2019 à 17:32:56

    Coucou,

    J'ai voulu utiliser la classe QRandomGenerator tout à l'heure mais le include correspondant ne passe pas la compilation. Il semblerait que je n'aie pas une version suffisamment récente de Qt, donc je vais sur le site, je télécharge le fichier .run et j'installe la version 5.12.

    Malheureusement après un nouvel essai, le compilateur ne connaît pas davantage QRandomGenerator et s'arrête encore à la ligne de l'include. J'ai donc l'impression d'avoir installé Qt 5.12 sur mon PC, mais visiblement pas au bon endroit. Est-ce que quelqu'un pourrait m'éclairer ? Je ne sais pas s'il est utile de le préciser, mais j'utilise Qt sans Qt Creator. Je fais tout à partir de la console, avec un fichier .pro, qmake et make.

    Merci d'avance pour votre aide.

    • Partager sur Facebook
    • Partager sur Twitter
      24 juillet 2019 à 9:14:24

      Bonjour,

      Le message qui suit est une réponse automatique activée par un membre de l'équipe. Les réponses automatiques leur permettent d'éviter d'avoir à répéter de nombreuses fois la même chose, ce qui leur fait gagner du temps et leur permet de s'occuper des sujets qui méritent plus d'attention.
      Nous sommes néanmoins ouverts et si vous avez une question ou une remarque, n'hésitez pas à contacter la personne en question par Message Privé.

      Pour plus d'informations, nous vous invitons à lire les règles générales du forum

      Mauvais forum

      Le sujet est déplacé de la section Linux & FreeBSD vers la section Langage C++

      Manque de précisions

      Afin d'obtenir de l'aide et une solution à votre problème, il est fortement recommandé de présenter clairement l'état actuel du problème en nous fournissant :

      • Un descriptif clair et précis du problème
      • La tentative actuelle de résolution que vous avez effectué
      • Le résultat attendu et le résultat actuel
      • Toutes pistes de recherches pouvant aider à la résolution
      • Partager sur Facebook
      • Partager sur Twitter
      Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
        24 juillet 2019 à 11:58:03

        Bonjour,

        Il est probable qu'il faille indiquer au compilateur le chemin vers les includes de Qt avec l'option

        -I/chemin/vers/qt/includes

        Quel est le message d'erreur à la compilation ? Cela pourrait aider à vous fournir une meilleur réponse au problème.

        J'espère vous avoir aidé.

        • Partager sur Facebook
        • Partager sur Twitter
          24 juillet 2019 à 15:50:05

          Bonjour,

          voici le message d'erreur :

          RandomGenerator.hpp:5:10: fatal error: QRandomGenerator: No such file or directory
           #include <QRandomGenerator>
                    ^~~~~~~~~~~~~~~~~~
          compilation terminated.

          Quel chemin exactement devrais-je donner ? J'ai fait tous les téléchargements (issus de l'installation via le fichier .run) dans /home/lol/Qt/ et donc, il y a tous les includes dans /home/lol/Qt/5.13.0/gcc_64/lib/ par exemple. Pourtant la compilation reste la même si j'ajoute l'option que vous avez donnée dans le fichier .pro :

          QMAKE_CXXFLAGS += -std=c++17 -Wall -Wextra -pedantic -I/home/lol/Qt/5.13.0/gcc_64/lib/

          Merci pour votre aide.

          (Si je remplace "lib" par "include", j'obtiens le même résultat)


          -
          Edité par Law. 24 juillet 2019 à 16:19:35

          • Partager sur Facebook
          • Partager sur Twitter
            25 juillet 2019 à 8:41:30

            Bonjour,

            Les includes se trouvent dans le dossier include et pas dans lib. Ensuite, vous devriez vérifier que QRandomGenerator se trouve bien directement dans le dossier include et pas dans un sous dossier. Par exemple pour moi QRandomGenerator se trouve là:

            C:\msys64\mingw64\include\QtCore\QRandomGenerator

            ou bien sur linux il faut remplacer C:\msys64\mingw64\include par /usr/include

            Il faut donc dans mon cas inclure

            #include <QtCore/QRandomGenerator>

            par exemple.

            Mais il est important de noté que moi je suis sous Windows avec msys2 pour gérer le compilateur et les libs. C'est peut être un peut différent avec l'installeur officiel de Qt. Mais je vous encourage à vérifier le chemin vers QRandomGenerator.

            J'espère vous avoir aidé.

            -
            Edité par Mirejai 25 juillet 2019 à 8:42:34

            • Partager sur Facebook
            • Partager sur Twitter
              25 juillet 2019 à 8:51:39

              Tu as quelque part un faux problème, tu as <random>, c'est standard, ça ne dépend pas de Qt et ça marchera dans du code "Qt". Qt propose plein d'alternatives au standard pour le cas où tu n'aurais pas accès au standard, mais si tu as accès au standard, utilise le standard, chaque fois que c'est possible, niveau portabilité c'est carrément meilleur, et si tu te retrouve avec une plateforme qui n'est pas supportée par Qt, tu ne seras pas à la rue ;)
              • Partager sur Facebook
              • Partager sur Twitter
              Mettre à jour le MinGW Gcc sur Code::Blocks. Du code qui n'existe pas ne contient pas de bug
                29 juillet 2019 à 6:52:57

                Salut int21h, en fait je me disais que dans tous les cas je devrais faire fonctionner Qt pour le projet qui m'occupe (c'est un "projet Qt"), donc puisque Qt est obligatoire, autant essayer de tout ramener à lui pour que j'aie le moins de librairies nécessaires possible en dehors de Qt.

                Merci acumboudou.

                • Partager sur Facebook
                • Partager sur Twitter
                  29 juillet 2019 à 13:06:20

                  Law. a écrit:

                  Salut int21h, en fait je me disais que dans tous les cas je devrais faire fonctionner Qt pour le projet qui m'occupe (c'est un "projet Qt"), donc puisque Qt est obligatoire, autant essayer de tout ramener à lui pour que j'aie le moins de librairies nécessaires possible en dehors de Qt.

                  Merci acumboudou.


                  Salut,

                  Non, justement!!!

                  De manière générale, pose toi la question de ce qui se passera si, un jour, tu  décides d'abandonner Qt au profit d'un framework similaire, ou comme c'est un risque effectivement assez limité, de ce qui se passera si, un jour, "quelqu'un" -- qui n'a aucune envie d'utiliser Qt, souhaite profiter d'une partie de ton projet comme base pour un autre projet (qui n'utiliserait pas Qt).

                  La réponse à ces deux questions est sensiblement la même et prend malheureusement la forme de "ben, tout ce qui utilise Qt sera bon pour la poubelle et devra être refait (de manière à ne pas utiliser Qt)".

                  L'idée générale est donc de limiter la partie qui utilise Qt à son stricte minimum et d'utiliser au maximum la bibliothèque standard et, le cas échéant, la bibliothèque boost (qui fait un peu office de "pépinière" dans laquelle les prochaines fonctionnalités de la bibliothèque standard sont menées à maturation) pour certaines fonctionnalités plus "avancées".

                  Cette idée est d'autant plus facile à mettre en oeuvre que Qt fait tout pour nous inciter à utiliser l'approche dite MVC (Model View Controler), car le modèle (les fonctionnalités métier) pourra être développé en C++ tout à fait pur (n'utilisant que la bibliothèque standard et, le cas échéant, boost), la vue (l'interface graphique et, le cas échéant, les fonctionnalités liés à la sérialization et à la tramsission d'informations) pourrait être développée en utilisant exclusivement Qt, et où le contrôleur ( la partie qui permet à la vue et au modèle de dialoguer entre eux, et qui produit les réaction aux différents événement récupérés par la vue) utiliserait "un peu des deux" bibliothèque pour faire son travail.

                  De cette manière, toutes les notions que tu auras développées pour ton modèle pourront être récupérées et réutilisées sans aucun problème même pour un projet qui n'a absolument aucune envie d'utiliser Qt, ce qui permettra de gagner énormément de temps et de s'éviter bien des soucis.

                  Dis toi bien que la bibliothèque standard est, de toutes manières, naturellement et automatiquement disponible (sans avoir quoi que ce soit à rajouter) dés que tu utilise C++, et que tu auras beaucoup plus facile à utiliser des fonctionnalités développées en "C++ pur" dans un contexte qui utilise Qt que d'utiliser des fonctionnalités qui nécessitent Qt dans un contexte qui ... refuse de l'utiliser; et que, l'un dans l'autre, il en ira de même pour boost ;)

                  Donc tout t'incite, au contraire, à utiliser le plus possible la bibliothèque standard et, le cas échéant, la bibliothèque boost pour tout ce qui n'a pas impérativement besoin de Qt ;)

                  • Partager sur Facebook
                  • Partager sur Twitter
                  Ce qui se conçoit bien s'énonce clairement. Et les mots pour le dire viennent aisément.Mon nouveau livre : Coder efficacement - Bonnes pratiques et erreurs  à éviter (en C++)Avant de faire ce que tu ne pourras défaire, penses à tout ce que tu ne pourras plus faire une fois que tu l'auras fait
                    1 août 2019 à 13:33:43

                    Effectivement, merci koala d'avoir pris le temps de m'expliquer pourquoi il vaut mieux faire comme ça. Je vais faire comme ça, en particulier je ne vais pas utiliser QRandomGenerator puisque std::random_device suffit.

                    Cependant le problème que j'ai eu pourrait revenir le jour où j'ai besoin d'un service que je ne peux pas trouver dans la bibiliothèque standard mais seulement dans une des dernières versions de Qt. Le fichier .run de Qt m'a créé un dossier de plusieurs Go, que j'ai nommé "Qt" et que j'ai placé à l'adresse /home/lol/Qt. Comment est-ce que je pourrais réutiliser ce dossier d'installation pour installer Qt au bon endroit (et ainsi ne plus avoir de problème d'include) ? 

                    • Partager sur Facebook
                    • Partager sur Twitter
                      1 août 2019 à 14:33:44

                      Si tu as un dossier /home, je présumes que tu es soit sous windows soit sous mac!

                      Tu as donc normalement un gestionnaire de paquetage qui devrait pouvoir te l'installer "au bon endroit" ;)

                      Selon la version de ton système d'exploitation, il se peut que le gestionnaire de paquetage t'installe par défaut une version "un peu plus ancienne" que la toute dernière version en date (et encore: ce n'est pas sur du tout ;) ).  Mais, a priori, il devrait -- au pire -- t'installer la dernière version LTS (la version 5.12, à l''heure actuelle), qui devrait pouvoir t'éviter bien des problèmes ;)

                      Dans le pire des cas, il pourrait s'avérer utile de compiler soi-même la dernière version de Qt, en précisant comme préfixe /local(/qt-x.y.z) ou x.y.z correspondrait à la version de Qt ainsi installée.

                      QMake connaissant d'office le chemin d'accès vers la configuration adéquate créée, il "devrait suffire" d'ajouter le dossier dans lequel se trouve l'exécutable qmake (typiquement $ROOT_DIR/bin, avec $ROOT_DIR correspondant au dossier d'installation de Qt) à ta variable PATH pour que tout fonctionne. Cela devrait d'ailleurs aussi fonctionner avec un installation dans home ;)

                      Sous debian, il existe un paquetage nommé qtchooser qui permet de déterminer la version de Qt que tu veux utiliser par défaut.  Il existe peut être sous d'autres systèmes (et, surement sur tous les sysème "debian like" tels que mint ou ubuntu). S'il est présent, n'hésite pas à  l'utiliser pour sélectionner la bonne version de Qt qui sera utilisée, cela sera beaucoup plus facile pour toi ;)

                      • Partager sur Facebook
                      • Partager sur Twitter
                      Ce qui se conçoit bien s'énonce clairement. Et les mots pour le dire viennent aisément.Mon nouveau livre : Coder efficacement - Bonnes pratiques et erreurs  à éviter (en C++)Avant de faire ce que tu ne pourras défaire, penses à tout ce que tu ne pourras plus faire une fois que tu l'auras fait

                      Installation de Qt

                      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                      • Editeur
                      • Markdown