Bonjour à tous,
Je voudrais compiler un programme en utilisant Qt et CMake mais j'obtiens un message d'erreur à la compilation.
J'ai mis dans deux dossiers différents les fichiers source et les header et mon problème vient de là car j'obtiens le message d'erreur suivant :
Lorsque mon fichier MaFenetre.hh et dans le dossier source ça fonctionne mais si je le laisse dans le dossier header ça ne fonctionne plus !AUTOMOC: error: qt/boite_de_dialogue/source/MaFenetre.cpp The file includes the moc file "moc_MaFenetre.cpp", but could not find header "MaFenetre{.h,.hh,.h++,.hm,.hpp,.hxx,.in,.txx}" in qt/boite_de_dialogue/source/
Pouvez-vous m'aider s'il vous plaît ?
Voici mon fichier hh :
mon fichier 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
15
16
17
18
19
20
21
22
23
24
25 #ifndef DEF_MAFENETRE #define DEF_MAFENETRE #include <QApplication> #include <QWidget> #include <QPushButton> #include <QMessageBox> class MaFenetre : public QWidget { Q_OBJECT public: MaFenetre(); public slots: void ouvrirDialogue(); private: QPushButton *m_boutonDialogue; }; #endif
mon main :
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 #include "MaFenetre.hh" #include "moc_MaFenetre.cpp" MaFenetre::MaFenetre() : QWidget() { setFixedSize(230, 120); m_boutonDialogue = new QPushButton("Ouvrir la boîte de dialogue", this); m_boutonDialogue->move(40, 50); QObject::connect(m_boutonDialogue, SIGNAL(clicked()), this, SLOT(ouvrirDialogue())); } void MaFenetre::ouvrirDialogue() { QMessageBox::warning(this,"Title of the window","hello les zeros"); }
et mon fichier CMakeLists.txt :
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 #include <QApplication> #include "MaFenetre.hh" int main(int argc, char *argv[]) { QApplication app(argc, argv); MaFenetre fenetre; fenetre.show(); return app.exec(); }
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 CMAKE_MINIMUM_REQUIRED(VERSION 2.8.8) PROJECT(main) # Appeler automatique le moc quand nécessaire SET(CMAKE_AUTOMOC ON) # Les fichiers générés par le moc sont générés dans le dossier bin, dire à CMake de toujours # inclure les entêtes de ce dossier SET(CMAKE_INCLUDE_CURRENT_DIR ON) # Le module QtWidgets trouve ses propres dépendances FIND_PACKAGE(Qt5Widgets REQUIRED) #Inclusion de mes en-têtes publics include_directories(header) file( GLOB_RECURSE source_files source/* ) ADD_EXECUTABLE(main ${source_files}) QT5_USE_MODULES(main Widgets) # La fonction QT5_USE_MODULE encapsule toutes les routines nécessaires à l'utilisation # d'un module QT5_USE_MODULES(main Widgets)
Partager