IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
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

Outils Discussion :

[QMake] Pas de recompilation après modification d'un header [Compilation]


Sujet :

Outils

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2005
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2005
    Messages : 147
    Par défaut [QMake] Pas de recompilation après modification d'un header
    Bonjour,

    Je viens de créer un nouveau projet Qt et j'aimerais dans ce projet séparer les sources et les headers dans des sous dossiers, pour bien organiser l'arborescence des fichiers. Je m'explique : je veux mettre tous les fichiers .cpp dans le dossier src/, les fichiers .h dans le dossier include/, les fichiers .o dans le dossier obj/ et les binaires dans le dossier bin/. Jusque là aucun soucis. J'ai ensuite configuré mon projet en indiquant les dossiers dans mon fichier projet.pro, puis générer le makefile, et compiler le projet, aucun soucis.

    Le problème est le suivant : lorsque je modifie un fichier .h, et que je relance un build, make me dit que la cible est à jour et qu'il n'y à rien à faire. Il faut que je modifie un fichier .cpp pour que la compilation ait lieu (ou que je rebuild tout). Je ne trouve pas ce comportement normal, normalement la modification d'un header entraine la recompilation de tous les objets dans lesquels il est inclus.

    Voici les fichiers de mon projets :

    Projet.pro :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     INCLUDEPATH = include
     OBJECTS_DIR = obj
     DESTDIR = bin
     HEADERS += include/renderer.h
     SOURCES += src/renderer.cpp \
         src/main.cpp
    include/renderer.h :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     #ifndef RENDERER_H
     #define RENDERER_H
     #include <QWidget>
     #include <QPushButton>
     class Renderer : public QWidget
     {
     public:
         Renderer();
      protected:
         QPushButton *pb;
     };
     #endif // RENDERER_H
    src/renderer.cpp :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     #include "renderer.h"
     Renderer::Renderer()
     {
             pb = new QPushButton("Mon bouton", this);
     }
    src/main.cpp :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     #include <QApplication>
     #include "renderer.h"
     int main(int argc, char* argv[]){
          QApplication app(argc, argv);
          Renderer r;
         r.show();
          return app.exec();
     }
    Est ce que j'ai mal configuré quelque chose ?

    J'utilise Qt 4.5.2 et QMake 2.01a

  2. #2
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 119
    Billets dans le blog
    148
    Par défaut
    Bonjour,

    Je ne suis pas sur que la changement d'un header force la recompilation de tout les objets qui l'utilise ( ok, ça ne semble pas logique ). Mais je me rapelle pas ce comportement dans make ... :s
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  3. #3
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut
    Citation Envoyé par LittleWhite Voir le message
    Bonjour,

    Je ne suis pas sur que la changement d'un header force la recompilation de tout les objets qui l'utilise ( ok, ça ne semble pas logique ). Mais je me rapelle pas ce comportement dans make ... :s
    normalement si. La modif relance la compile.
    Tu es sous quel environnement? (gcc, windows, linux,...)

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    118
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2009
    Messages : 118
    Par défaut
    j'ai le meme probleme, qmake ne mets pas a jour les fichiers qui comportent le header modifie, je suis force de faire un rebuild all

  5. #5
    Membre confirmé
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2005
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2005
    Messages : 147
    Par défaut
    Bonjour,

    Je suis content de voir que je ne suis pas le seul a avoir ce problème

    Je suis sous ubuntu karmic 64, avec la version de Qt des dépots ubuntu, soit la 4.5.2 et QMake 2.01. Je viens de tester sous une ubuntu 32bit meme version, c'est pareil.

    @Yan, j'ai également fait un qmake à partir du projet de générateur de Fractale que tu as codé pour le Défi Qt, c'est pareil chez moi, pas de recompilation quand je modifie un fichier hpp. j'ai par contre recréé le Makefile, donc si tu peux vérifier chez toi dans ton makefile si c'est pareil...

    D'autre part, pour un projet où les headers sont dans le meme dossier que les sources, pas de problème, les regles générées dans le makefile sont du type
    A.o : A.cpp A.h

    Je n'ai pas tester avec la toute dernière version de QMake, je vais faire ça ce soir si j'ai le temps.

    Merci pour votre aide et à ce soir

  6. #6
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut
    bizzare.
    Quand j'ai codé, je n'ai jamais eu de problème. Mais j'utilisais visual et testé après sur gcc et autre.
    Et si tous les fichiers sont référencés dans le .pro, cela ne recompile pas non plus?

    Juste pour que l'on soit d'accord
    qmake : génère le makefile
    make : compile ou recompile tous ce qu'il faut (uic, moc, gcc,...)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [SFTP] SSHD ne démarre pas après modif de la config
    Par Mathieu.J dans le forum Administration système
    Réponses: 2
    Dernier message: 27/06/2013, 18h08
  2. [XL-2003] macro/fonction simple qui ne recalcule pas après modif
    Par akka01 dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 14/03/2011, 08h17
  3. Réponses: 6
    Dernier message: 29/07/2010, 17h01
  4. gotoAndStop ne fonctionne pas apres modification d'un clip
    Par t_o_7_ dans le forum ActionScript 1 & ActionScript 2
    Réponses: 1
    Dernier message: 06/05/2009, 12h35
  5. [MySQL] Données qui ne s'affichent pas après modif
    Par philippef dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 22/08/2007, 22h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo