RECHERCHER :
COMMUNAUTE MP
Identifiez vous ...
Devenir Membre
J'ai oublié mon MDP
DOMAINE MP
Bavardages
Langages Généraux
Langages Web
Langages DotNet
Autres langages
Dev. Jeux Video
Sécurité
Sys. Exploitation
Graphismes
Logiciels
Réseaux
Bases de données
Méthodologies
Emplois High-tech
Aide juridique
Articles juridiques
FORUM
Index des forums
Ajouter un sujet
Rechercher sujet
Contact Responsable
Devenir modérateur
CHAT MP IRC
Votre pseudo ...
Serv: irc.irc-land.org
Chan: #MoteurProg
PARTICIPER
Plus de 3500 emplois.
Rechercher un job
Déposez votre CV
Emplois High-tech

Visiteur MP

 Les Makefiles, explications et utilisation avec QT

Forum : LIBRAIRIE C++
Sous Catégorie : Aucune
Type du sujet : Sujet Normale
FAQ : FAQ LIBRAIRIE C++

SUIVI DES SUJETS PAR MAIL

SUIVI PAR MAIL INACTIF

RESOLUTION DU SUJET AJOUTER MENTION RESOLU
BLOQUAGE DU SUJET SUJET ACTIF
APPARTENANCE A LA FAQ APPARTENANT A LA FAQ


POSTER UN NOUVEAU SUJET REPONDRE A CE SUJET

FORUM LIBRAIRIE C++

PREMIERE PAGE

PAGE PRECEDENTE

Page précedente

Page suivante

PAGE SUIVANTE

DERNIERE PAGE
Visiteur MP
Membre du club
Inscrit :
Messages : 1237
Message
#102872
Posté le 26/06/06 à 18:55
Merci, toujours aussi clair dans tes explications, c'est toujours délicieux de lire tes articles/tutoriaux
Merci encore
Bonne soirée
A+

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE ALLER VOIR SON SITE

Publicité
Inscrit : X
Messages : X
Message
#Aucun

HAUT DE PAGE

  

Visiteur MP
Membre du club
Inscrit :
Messages : 1237
Message
#102873
Posté le 26/06/06 à 18:55
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 projetfichier, 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

SRCS = MonProjetMainWnd.cpp
main.cpp

MOC_HEADERS = MonProjetMainWnd.h


MOC_SRCS = $(MOC_HEADERS:%.h=moc_%.cpp)
MOC_OBJS = $(MOC_SRCS:%.cpp=%.o)

UI_SRC = MonProjet.ui
UI_HEADER = $(UI_SRC:%.ui=%.h)
UI_CPP = $(UI_SRC:%.ui=%.cpp)
UI_OBJS = $(UI_SRC:%.ui=%.o)

OBJS = $(SRCS:%.cpp=%.o) $(MOC_OBJS) $(UI_OBJS)

PROJET = MonProjet.bin

all: $(PROJET)

%.h: %.ui

uic -o $@ $<

%.cpp: %.ui %.h

uic -i $*.h -o $@ $<

moc_%.cpp: %.h

$(MOC) $< -o $@


moc_%.o: moc_%.cpp %.h

$(CXX) -c $(CFLAGS) $< -o $@


%.o:%.cpp

$(CXX) -c $(CFLAGS) $< -o $@


$(PROJET): $(UI_CPP) $(MOC_SRCS) $(OBJS) $(MOC_OBJS)

$(CXX) $(LDFLAGS) $(OBJS) -o $@

clean:
rm -f $(UI_HEADER) $(UI_CPP) $(MOC_SRCS) $(OBJS) $(PROJET)
[/code]

C'est parti pour les explications ....

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 CC++. Si vous avez encore des questions postez un nouveau Topic.[/col]

Ciao :wink:

ERREUR BBCODE SUR CE MESSAGE :
- La valeur de la balise "quote" n'est pas correcte !

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE ALLER VOIR SON SITE


    PAGE : [1]



.: Site Web développé par Julien Pichot et l'équipe MPWG avec www.evolvia-web.com :.