Partage
  • Partager sur Facebook
  • Partager sur Twitter

Inclusion d'un fichier.h dans deux projets

Qt creator

Sujet résolu
    22 novembre 2017 à 10:03:19

    Bonjour

    depuis plusieurs jours, j'ai un blocage donc je poste une question :

    comme l'avait conseillé quelqu'un du forum, j'ai créé un librairie statique contenant une classe car j'ai besoin de l'inclure dans le projet serveur et le projet client du chatt en réseau du cours de Mathieu Nébra.

    J'ai cherche à l'inclure dans le projet client et le projet serveur avec

    #INLCUDEPATH

    dans le fichier .pro de chacun des deux projets, afin de pouvoir utiliser la librairie sans avoir à inclure les fichiers du pro dans chacun des deux projets et de pouvoir ainsi répercuter automatiquement les modifications de la classe.

    Dans chacun des deux projets, j'ai aussi fait un #include "classe"

    Dans un deux projets, la classe de la bibliothèque statique est prise en compte, et pas dans l'autre, ce que je cherche à résoudre.

    Une idée pour la résolution ?

    Merci

    • Partager sur Facebook
    • Partager sur Twitter
      22 novembre 2017 à 12:03:36

      Message d'erreur SVP.
      • Partager sur Facebook
      • Partager sur Twitter
      Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
        22 novembre 2017 à 12:15:52

        En fait, dans le projet FenClient, quand je déclare un objet de type Client, le type Client n'est pas reconnu, alors que dans la classe FenServeur, il est reconnu.
        • Partager sur Facebook
        • Partager sur Twitter
          22 novembre 2017 à 12:30:46

          C'est vraisemblablement que la liste des répertoires où chercher les .h est mal configurée dans le projet client.
          • Partager sur Facebook
          • Partager sur Twitter
          Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
            22 novembre 2017 à 14:07:59

            Dans l'arbre de compilation,

            j'ai fait ajouter des fichiers existants dans chacun des deux projets.

            Donc normalement, l'emplacement est placé automatiquement.

            Cela n'a pas d'être le cas.

            J'ai essayé plusieurs trucs pour corriger le bug

            • Partager sur Facebook
            • Partager sur Twitter
              22 novembre 2017 à 14:40:12

              >Donc normalement, l'emplacement est placé automatiquement.

              Absolument pas.

              Le fait qu'un fichier d'en-tête soit dans un projet d'IDE n'a aucune influence sur la visibilité de ces fichiers lors de la compilation de chaque fichier de code source, seule la définition des répertoires de recherche des en-tête influence cette visibilité.

              Mais si le message d'erreur est la "non déclaration" d'une classe et pas la non récupération d'un .h, c'est qu'un fichier .h a été trouvé "à la place" ou avant le fichier "légitime" (voir c'est le fichier légitime mais les constantes de compilations peuvent grandement changer l'interprétation d'un .h).

              On ne va se prendre la tête, utilisez l'option de compilation qui donne le résultat du pré-processing  (/P pour VS, -E je crois pour GCC), vous y verrez ce que le pré-processeur génère vraiment.

              Cas les plus fréquents :

              - header-guard avec des #define foireux

              - confusion entre #include "..." et #include <...>

              - constantes de compilation aux fraises.

              • Partager sur Facebook
              • Partager sur Twitter
              Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
                22 novembre 2017 à 16:47:13

                Dans Qt Creator, peux-tu m'indiquer comment tu ajoutes l'option -E ?

                Merci

                • Partager sur Facebook
                • Partager sur Twitter
                  22 novembre 2017 à 17:04:31

                  • Partager sur Facebook
                  • Partager sur Twitter
                  Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
                    22 novembre 2017 à 20:36:15

                    @Bacelar,

                    je suis en train de lire et relire ton avant-dernier message pour trouver l'erreur.

                    Tu dis

                    seule la définition des répertoires de recherche des en-tête influence cette visibilité.

                    Peux-tu préciser où se passe la définition des répertoires de recherche des en-tête ?

                    Je pense que la solution vient de là.

                    Merci

                    • Partager sur Facebook
                    • Partager sur Twitter
                      23 novembre 2017 à 11:37:32

                      • Partager sur Facebook
                      • Partager sur Twitter
                      Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
                        23 novembre 2017 à 16:02:38

                        Bacelar, comment fais-tu pour obtenir des résultats de requêtes google si précises ?

                        Est-ce que tu fais tes requêtes google en anglais ou tu les fais en français pour avoir ce genre de résultat ?

                        Merci à toi

                        MERCi encore, j'ai trouvé la réponse sur cette page, j'ai cherché sur une autre page pour trouver ma réponse :

                        C'est dans la documentation qmake Variable Reference

                        https://doc.qt.io/qt-5/qmake-variable-reference.html#includepath

                        -
                        Edité par pseudo-simple 23 novembre 2017 à 16:23:15

                        • Partager sur Facebook
                        • Partager sur Twitter
                          23 novembre 2017 à 16:06:40

                          Toujours en Anglais, pas tester en Français.
                          • Partager sur Facebook
                          • Partager sur Twitter
                          Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
                            23 novembre 2017 à 16:26:23

                            Merci beaucoup, ça faisait plusieurs jours que je cherchais.

                            Grâce à toi, je suis en train de rentrer plus en détails dans qmake, dont toute façon, je savais que je m'y mettrais un moment où un autre.

                            Je passe le sujet en résolu.

                            • Partager sur Facebook
                            • Partager sur Twitter

                            Inclusion d'un fichier.h dans deux projets

                            × 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