Salut à tous,
beaucoup se demande ce que sont et à quoi servent les makefiles, moi je vais me contenter de vous expliquer le fonctionnement avec la librairie QT. Alors voilà, les makefils sont tout simplement là pour définir les règles de compilation du projet\fichier, et bien sûr aussi pour les dépendances entre fichier, ce qui évite les compilations multiples.
Admettons que vous avez créé un projet QT se nommant MonProjet et que les fichier qu'il contient sont: MonProjetMainWnd.h MonProjetMainWnd.cpp main.cpp ET MonProjet.ui. Le dernier des fichiers est le design de la fenêtre, ce fichier peut être créé avec QDesigner.
[code]
QT_HOME = /usr/lib/qt3
MOC = moc
CXX = g++
CFLAGS = -I$(QT_HOME)/include
LDFLAGS = -L$(QT_HOME)/lib -lqt-mt
Alors la toute première ligne doit être adaptée en fonction de l'installation de la librairie QT, c'est à dire que le dossier dans lequel la librairie est installée doit être mensionné dans cette ligne !
Tout d'abord nous créons des variables utilisées plus tard, ces variables sont:
[quote]
- CXX : Le compilateur
- CFLAGS : Les flags de compilation
- SRCS : Les sources du projet
- MOC_HEADERS : LEs fichier en-têtes, compilés par moc
.. et ainsi de suite ...
[/quote]
Ensuitr suivent les règles de compilation, celles-ci utilisent des signes qui vous sont peut-être inconnu:
[quote]
$@ : La cible devant être créée
$< : Le premier argument dans les dépendances
$* : La partie représentée par % dans la règle (en général c'est le nom du fichier)
[/quote]
Venons en maintenant à moc et uic.
[b]- Moc:[/b]
Il va générer le fichier d'implémentation (.cpp) d'un fichier d'en-tête contenant la macro Q_OBJECT, ainsi que sont fichier d'en-tête.
[b]- Uic:[/b]
Il va générer la même chose mais en deux fois:
[quote]
uic -o toto.h toto.ui
[/quote]
Après cela vous obtiendrez le fichier en-tête du .ui
Et puis:
[quote]
uic -i toto.h -o toto.cpp toto.ui
[/quote]
Après cela vous obtiendrez le .cpp du .ui ^^
Et enfin notre dernier obstacle: clean
Cela va permettre de 'laver' en quelque sorte tout ce qui à été créer temporairement lors de la compilation ... :)
J'espère que ça vous a plu et que vous avez un peu mieux compris l'utilisation des makefiles avec QT !
[col=#FA0000]Merci de laisser ce post sans commentaire, il appartient à la FAQ C\C++. Si vous avez encore des questions postez un nouveau Topic.[/col]
Ciao :wink:
__________________________
Grégory S.
eVias Web & Software Solutions.
Développement Web et logiciel en tout genre et Open Source.
[url=http://www.fosdem.org/2008/]FOSDEM 2008[/url]. Venez -y nombreux !
ERREUR BBCODE SUR CE MESSAGE : - La valeur de la balise "quote" n'est pas correcte !
Merci, toujours aussi clair dans tes explications, c'est toujours délicieux de lire tes articles/tutoriaux
Merci encore
Bonne soirée
A+
__________________________
Be C++ Mon Blog (C++, Intelligence Artificielle, Prolog)