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

Discussion :

[Compilation] problème de compilation

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 103
    Par défaut [Compilation] problème de compilation
    Bonjour à tous

    J'ai un problème de compilation avec Qt : eclipse me balance tout un tas de "undefined reference" dans le log de compilation, et je ne sais pas comment les résoudre...

    Commençons par le code !
    fichier ui_copieur.h :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    #ifndef UI_COPIEUR_H
    #define UI_COPIEUR_H
     
    #include <QDialog>
    #include <QtGui>
     
    class ui_copieur : public QDialog {
     
    	Q_OBJECT
     
    	private:
    		QLabel *infoSaisie;
    		QLabel *infoChemin;
    		QLineEdit *chemin;
    		QListView *listeFichiers;
    		QPushButton *scannerChemin;
    		QPushButton *copierChemin;
     
    	public:
    		ui_copieur(QWidget *parent=0) : QDialog(parent) {
     
    			infoSaisie = new QLabel(tr("Saisissez un chemin"));
    			infoChemin = new QLabel(tr("Statut : "));
    			chemin = new QLineEdit(tr("C:\\"));
    			listeFichiers = new QListView();
    			scannerChemin = new QPushButton(tr("Scanner le fichier"));
    			copierChemin = new QPushButton(tr("Copier le fichier"));
     
    			connect(scannerChemin,SIGNAL(clicked()),this,SLOT(goCopie()));
    			connect(copierChemin,SIGNAL(clicked()),this,SLOT(goScan()));
     
    			QHBoxLayout *layoutBoutons = new QHBoxLayout;
    			layoutBoutons->addWidget(scannerChemin);
    			layoutBoutons->addWidget(copierChemin);
     
    			QVBoxLayout *layoutPrincipal = new QVBoxLayout;
    			layoutPrincipal->addWidget(infoSaisie);
    			layoutPrincipal->addWidget(chemin);
    			layoutPrincipal->addWidget(infoChemin);
    			layoutPrincipal->addWidget(listeFichiers);
    			layoutPrincipal->addLayout(layoutPrincipal);
     
    			setWindowTitle(tr("Copie de fichiers"));
    			setFixedHeight(sizeHint().height());
     
    		};
     
    	private slots:
    		void goCopie();
    		void goScan();
     
    };
     
    #endif
    fichier main.cpp :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    #include "copieur.h"
    #include "ui_copieur.h"
     
    #include <QApplication>
     
    int main(int argc,char *argv[]) {
     
        QApplication a(argc,argv);
        ui_copieur *ui_cop = new ui_copieur;
        ui_cop->show();
        a.connect(&a,SIGNAL(lastWindowClosed()),&a,SLOT(quit()));
        return a.exec();
     
    }
    J'ai deux erreurs qui se répètent plusieurs fois dans le log :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    release/main.o(.text$_ZN10ui_copieurC1EP7QWidget[ui_copieur::ui_copieur(QWidget*)]+0x5e8):main.cpp: undefined reference to `ui_copieur::staticMetaObject'
    release/main.o(.text$_ZN10ui_copieurC1EP7QWidget[ui_copieur::ui_copieur(QWidget*)]+0x86):main.cpp: undefined reference to `vtable for ui_copieur'
    En commentant la déclaration de mon instance de ui_copieur dans le main, les erreurs disparaissent. Mais bon une application graphique sans interface c'est moyen ^^.

    Voilà je continue les tests mais si quelqu'un a une idée...

    Merci

  2. #2
    Membre Expert

    Avatar de IrmatDen
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 727
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 727
    Par défaut
    Salut,

    C'est que le moc n'est pas passé par là. Est-ce que ui_copieur.h fait bien parti de ton fichier projet (section HEADERS)?

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 103
    Par défaut
    En effet ce n'était pas le cas.

    Je l'ajoute et je test...

    [EDIT] : bon ça ne résout pas le problème, le seul moyen de supprimer cette erreur est de supprimer la macro Q_OBJECT... mais j'ai besoin des signaux et des slots
    Comment faire ?
    Merci

  4. #4
    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
    Bonjour.
    Tu utilise le plugin Qt pour eclipse?

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 103
    Par défaut
    Re

    Oui j'utilise le plugin Qt pour eclipse et le compilateur MinGW. Le problème pourrait venir de là ?

    Merci pour vos réponses

  6. #6
    Membre averti
    Profil pro
    Lycéen
    Inscrit en
    Août 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Août 2007
    Messages : 21
    Par défaut
    Salut.

    Le problème vient certainement du fait, comme la dit IrmatDen, que le moc n'est pas passé par là. En fait, quand tu utilises Qt, il est nécessaire de préparer en quelque sorte le compilateur, notamment pour qu'il reconnaisse la macro Q_OBJECT, les signaux et les slots. Je ne m'y connait absolument pas sur eclipse mais si tu pouvais essayer de lancer le programme nommé qmake, ça devrait rêgler le problème.

Discussions similaires

  1. [COMPILER] Problème de compilation
    Par boukharyinfos dans le forum MATLAB
    Réponses: 38
    Dernier message: 17/04/2008, 04h00
  2. problème de compil devc++ socket
    Par stefdem dans le forum Autres éditeurs
    Réponses: 2
    Dernier message: 11/12/2003, 11h33
  3. Réponses: 1
    Dernier message: 29/10/2003, 12h16
  4. Problème de compilation de la DLL du XMLRad
    Par [DreaMs] dans le forum XMLRAD
    Réponses: 2
    Dernier message: 16/04/2003, 16h46
  5. Réponses: 1
    Dernier message: 27/05/2002, 01h44

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