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 :

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/
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 !
Pouvez-vous m'aider s'il vous plaît ?


Voici mon fichier hh :
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 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
 
#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");
}
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
 
 
#include <QApplication>
#include "MaFenetre.hh"
 
 
int main(int argc, char *argv[])
{
  QApplication app(argc, argv);
 
  MaFenetre fenetre;
  fenetre.show();
 
  return app.exec();
}
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
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)