Partage
  • Partager sur Facebook
  • Partager sur Twitter

Erreur compilation ?

Sujet résolu
    12 mai 2008 à 12:02:44

    Bonjour
    J'ai un probleme avec le ttuto officiel :c++ 2eme partie Qt.
    je fait exactement comme le dit le tuto mas voila, a la compilation il y a plein d'erreur.

    Regarder plutot mes codes :
    Main.cpp
    #include <QApplication>
    #include "mafenetre.h"
    
     
     
    int main(int argc, char *argv[])
    {
        QApplication app(argc, argv);
     
        MaFenetre fenetre;
        fenetre.show();
     
        return app.exec();
    }
    


    MaFenetre.h
    class MaFenetre : public QWidget
    {
        Q_OBJECT
     
        public:
        MaFenetre();
     
        public slots:
        void changerLargeur(int largeur);
     
        private:
        QSlider *m_slider;
    };
    


    MaFenetre.cpp
    MaFenetre::MaFenetre() : QWidget()
    {
        setFixedSize(200, 100);
     
        m_slider = new QSlider(Qt::Horizontal, this);
        m_slider->setRange(200, 600);
        m_slider->setGeometry(10, 60, 150, 20);
     
        QObject::connect(m_slider, SIGNAL(valueChanged(int)), this, SLOT(changerLargeur(int)));
    }
    
    void MaFenetre::changerLargeur(int largeur)
    {
        setFixedSize(largeur, 100);
    }
    

    Et voici la console qui s'affiche aprer le qmake -project, qmake, make:

    Setting up a MinGW/Qt only environment...
    -- QTDIR set to C:\Qt\4.4.0
    -- PATH set to C:\Qt\4.4.0\bin
    -- Adding C:\MinGW\bin to PATH
    -- Adding C:\WINDOWS\System32 to PATH
    -- QMAKESPEC set to win32-g++
    
    C:\Qt\4.4.0>cd C:\Qt\test
    
    C:\Qt\test>qmake -project
    
    C:\Qt\test>qmale
    'qmale' n'est pas reconnu en tant que commande interne
    ou externe, un programme exécutable ou un fichier de commandes.
    
    C:\Qt\test>qmake
    
    C:\Qt\test>make
    mingw32-make -f Makefile.Release
    mingw32-make[1]: Entering directory `C:/Qt/test'
    g++ -c -O2 -frtti -fexceptions -mthreads -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT
    -DQT_DLL -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -DQT_NEEDS
    _QMAIN -I"..\4.4.0\include\QtCore" -I"..\4.4.0\include\QtCore" -I"..\4.4.0\inclu
    de\QtGui" -I"..\4.4.0\include\QtGui" -I"..\4.4.0\include" -I"." -I"c:\Qt\4.4.0\i
    nclude\ActiveQt" -I"release" -I"." -I"..\4.4.0\mkspecs\win32-g++" -o release\MaF
    enetre.o MaFenetre.cpp
    MaFenetre.cpp:1: error: `MaFenetre' has not been declared
    MaFenetre.cpp:1: error: ISO C++ forbids declaration of `MaFenetre' with no type
    MaFenetre.cpp: In function `int MaFenetre()':
    MaFenetre.cpp:1: error: only constructors take base initializers
    MaFenetre.cpp:3: error: `setFixedSize' undeclared (first use this function)
    MaFenetre.cpp:3: error: (Each undeclared identifier is reported only once for ea
    ch function it appears in.)
    MaFenetre.cpp:5: error: `m_slider' undeclared (first use this function)
    MaFenetre.cpp:5: error: `QSlider' has not been declared
    MaFenetre.cpp:5: error: `Qt' has not been declared
    MaFenetre.cpp:5: error: `Horizontal' undeclared (first use this function)
    MaFenetre.cpp:5: error: invalid use of `this' in non-member function
    MaFenetre.cpp:9: error: `QObject' has not been declared
    MaFenetre.cpp:9: error: expected primary-expression before "int"
    MaFenetre.cpp:9: error: `valueChanged' undeclared (first use this function)
    MaFenetre.cpp:9: error: `SIGNAL' undeclared (first use this function)
    MaFenetre.cpp:9: error: invalid use of `this' in non-member function
    MaFenetre.cpp:9: error: expected primary-expression before "int"
    MaFenetre.cpp:9: error: `changerLargeur' undeclared (first use this function)
    MaFenetre.cpp:9: error: `SLOT' undeclared (first use this function)
    MaFenetre.cpp:9: error: `connect' undeclared (first use this function)
    MaFenetre.cpp: At global scope:
    MaFenetre.cpp:12: error: `MaFenetre' is not a class or namespace
    MaFenetre.cpp: In function `void changerLargeur(int)':
    MaFenetre.cpp:13: error: `void changerLargeur(int)' used prior to declaration
    MaFenetre.cpp:14: error: `setFixedSize' undeclared (first use this function)
    mingw32-make[1]: *** [release/MaFenetre.o] Error 1
    mingw32-make[1]: Leaving directory `C:/Qt/test'
    mingw32-make: *** [release] Error 2
    
    C:\Qt\test>

    En gros ils disent que "MaFenetre.cpp est totalement fausse...

    Poourquoi y a t-il tant d'erreur ?
    Aidez moi svp
    • Partager sur Facebook
    • Partager sur Twitter
      12 mai 2008 à 12:19:51

      es-tu sur ke tu as inclu corectement le header? Sinon il i a un seul moyen: tout relire et comparer avec le tuto dans les détails.
      • Partager sur Facebook
      • Partager sur Twitter
      Anonyme
        12 mai 2008 à 12:50:01

        inclu MaFenetre.h dans MaFenetre.cpp
        • Partager sur Facebook
        • Partager sur Twitter
          14 mai 2008 à 17:19:09

          Je vais essayer d'inclure mafenetre.h dans ma fenetre.cpp et voir le résultat.
          • Partager sur Facebook
          • Partager sur Twitter
            14 mai 2008 à 18:32:11

            David à raison,
            Fais gaffe à la casse "MaFenetre.h" n'est pas égal à "mafenetre.h"
            • Partager sur Facebook
            • Partager sur Twitter
              14 mai 2008 à 21:44:22

              c bon j'ai trouvé ! javais oublier d'inclure le <QWidget> et le <QApplication> dans le header !
              Merci pour vos réponses
              • Partager sur Facebook
              • Partager sur Twitter

              Erreur compilation ?

              × 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