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 ...
Srv: irc.moteurprog.com
Chan: #MoteurProg
PARTICIPER
Plus de 3500 emplois.
Rechercher un job
Déposez votre CV
Emplois High-tech

Visiteur MP

 Les makefile à la main

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

SUIVI DES SUJETS PAR MAIL

SUIVI PAR MAIL INACTIF

RESOLUTION DU SUJET SUJET RESOLU
BLOQUAGE DU SUJET SUJET ACTIF
APPARTENANCE A LA FAQ N'APPARTIENT PAS A LA FAQ


PAGES : [1] [2]

POSTER UN NOUVEAU SUJET REPONDRE A CE SUJET

FORUM LIBRAIRIE C++ - GTK

PREMIERE PAGE

PAGE PRECEDENTE

Page précedente

Page suivante

PAGE SUIVANTE

DERNIERE PAGE
pac
Co-Administrateur
Superviseur :
- Méthodologie.
Modérateur :
- Delphi
Chef de projet(s) :
- Jeu Awalé
- EcoSystem
- MySudoku

Avatar de pac
Inscrit : 08/04/2004
Messages : 6570
Message
#26268
Posté le 13/08/04 à 17:59
Salut tous, j'avais fait un projet Qt avec Visual C++, mais maintenant que je suis sous linux je voudrais faire un makefile pour compiler mais je ne connais pas les syntaxes pour les uic et moc vous en avez pas un sous la main que je puisse prendre comme exempe ?

Merci.
__________________________
Lisez la charte, pensez à regarder la FAQ, les tutoriaux, l'annuaire et faites une recherche dans les forums.
N'oubliez pas le Tag [Résolu]Image.

Initiez-vous à Delphi avec Turbo Delphi Explorer, au C ou au C++ avec Code::Blocks et C# avec Visual C# 2005 Express.

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE ALLER VOIR SON SITE

Publicité
Inscrit : X
Messages : X
Message
#Aucun

HAUT DE PAGE

  

kadirou
Membre actif
Avatar de kadirou
Inscrit : 13/04/2004
Messages : 147
Message
#26565
Posté le 16/08/04 à 19:21
Salut Pac

Le principe du Makefile est de definir les regles de compilation (comment compiler un .cpp, generer des fichier, etc.) et les dependances entre le resultat de l'action et les sources (pour eviter la recompilation a chaque fois). Pour illuster cela voici le makefile pour compiler le jeu awale


QT_HOME = /usr/lib/qt3 MOC = moc CXX = g++ CFLAGS = -I$(QT_HOME)/include LDFLAGS = -L$(QT_HOME)/lib -lqt-mt SRCS = awale.cpp \ awaledialog.cpp \ main.cpp MOC_HEADERS = awaledialogbase.h \ awaledialog.h MOC_SRCS = $(MOC_HEADERS:%.h=moc_%.cpp) MOC_OBJS = $(MOC_SRCS:%.cpp=%.o) UI_SRC = awaledialogbase.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) AWALE = awale.bin all: $(AWALE) %.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 $@ $(AWALE): $(UI_CPP) $(MOC_SRCS) $(OBJS) $(MOC_OBJS) $(CXX) $(LDFLAGS) $(OBJS) -o $@ clean: rm -f $(UI_HEADER) $(UI_CPP) $(MOC_SRCS) $(OBJS) $(AWALE)


Pour que ca marche tu dois modifier la variable QT_HOME pour qu'elle designe l'emplacement de la librarire Qt.

Les premieres lignes creent des variables qui seront utilise pour definir les regles de compilation (CXX designe le compilateur, CFLAGS les flags de compil, SRC les sources, MOC_HEADER les fichiers .h qui doivent etre compiles par moc, etc.)
Par exemple la syntaxe

TOTO = $(MOC_SRCS:%.cpp=%.o)

permet de crer une variable a partir de MOC_SRC en remplacant chaque mot de la forme fichier.cpp par fichier.o.

La suite c'est les regles de compilation. Voici quelques remarques concernant les variables generiques utilisees :

$@ : la cible qui doit etre cree
$< : le premier argument des dependances
$* : la partie representee par % dans la regle (generale c'est le nom du fichier)

Pour revenir a moc et uic, le premier recoit le fichier entete contenant la classe avec la macro Q_OBJECT et genere le fichier d'implementation (.cpp) et d'entete correspondant). Quand au second il genere ca en deux fois, en premier le fichier entete par
uic -o toto.h toto.ui
puis le fichier implementation par
uic -i toto.h -o toto.cpp toto.ui

@+

Une derniere remarque, l'entree clean permet de faire le menage en supprimant tous les resultats de compilation.

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

pac
Co-Administrateur
Superviseur :
- Méthodologie.
Modérateur :
- Delphi
Chef de projet(s) :
- Jeu Awalé
- EcoSystem
- MySudoku

Avatar de pac
Inscrit : 08/04/2004
Messages : 6570
Message
#26580
Posté le 16/08/04 à 21:35
Merci Kadirou, pour le boulot que tu as fait.
Je connais le principe des makefile, j'en avais fait pour des mode consoles mais je ne savais pas ce qu'il fallait rajouter pour les projets Qt.

De plus je me rends compte que j'ai Qt soit mal installé soit mal paramétré.
__________________________
Lisez la charte, pensez à regarder la FAQ, les tutoriaux, l'annuaire et faites une recherche dans les forums.
N'oubliez pas le Tag [Résolu]Image.

Initiez-vous à Delphi avec Turbo Delphi Explorer, au C ou au C++ avec Code::Blocks et C# avec Visual C# 2005 Express.

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE ALLER VOIR SON SITE

kadirou
Membre actif
Avatar de kadirou
Inscrit : 13/04/2004
Messages : 147
Message
#26719
Posté le 17/08/04 à 18:38
Salut Pac

Pour Qt, tu dois rajouter cette option a la compilation :

-I/usr/lib/qt3/include

et celle-ci au link :
-L/usr/lib/qt3/lib -lqt

Tu dois mettre mettre le chemin d'installation de Qt (/usr/lib/qt-x est le chemin generalement dans une Mandrake ou RH).

T'as quoi comme message d'erreur ?

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

pac
Co-Administrateur
Superviseur :
- Méthodologie.
Modérateur :
- Delphi
Chef de projet(s) :
- Jeu Awalé
- EcoSystem
- MySudoku

Avatar de pac
Inscrit : 08/04/2004
Messages : 6570
Message
#26723
Posté le 17/08/04 à 19:03
Il me dit [quote]make: *** Pas de règle pour fabriquer la cible « /usr/lib/qt3/mkspecs/default/qmake.conf », nécessaire pour « Makefile ». Arrêt.
[/quote]

En fait j'avais installé Qt qd j'étais encore sous Win et la je travaille avec Knoppix en bootant sur le CD car j'ai pas encore assez de place pour l'installer (je le ferai qd j'aurrai viré Win).
__________________________
Lisez la [url=http://www.forum.moteurprog.com/bavardages/forum-msg-22857-1.htm]charte[/url], pensez à regarder la [url=http://www.forum.moteurprog.com/FAQ/FAQ.php]FAQ[/url], les [url=http://www.moteurprog.com/Tutoriaux/]tutoriaux[/url], l'[url=http://www.moteurprog.com/Annuaire/]annuaire[/url] et faites une [url=http://www.forum.moteurprog.com/Rechercher/Index.php]recherche[/url] dans les forums.
N'oubliez pas le Tag [b][Résolu][/b][img]http://www.ressources.moteurprog.com//Ressources/Images/Forum/Resolu.gif[/img].

Initiez-vous à Delphi avec [url=http://www.turboexplorer.com/delphi]Turbo Delphi Explorer[/url], au C ou au C++ avec [url=http://www.codeblocks.org]Code::Blocks[/url] et C# avec [url=http://www.microsoft.com/france/msdn/vstudio/express/vcsharp/telechargez.mspx]Visual C# 2005 Express[/url].

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

prog.qt
Nouveau membre
Inscrit : 28/03/2004
Messages : 2
Message
#27086
Posté le 19/08/04 à 23:57
Pour générer un fichier Makefile il y a bien plus simple :
1. Tu te places dans le répertoire contenant les sources et les .ui
2. Dans un terminal, tu exécute
qmake -project
. Cela va créer un fichier projet (.pro) ayant le même nom que le répertoire.
3. Exécute ensuite
qmake
qui va alors créer automatiquement un fichier Makefile adapté à l'environnement de programmation et le système.

Voila pas besoin de s'embéter à créer les Makefile à la main.
__________________________
Webmestre http://prog.qt.free.fr

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

fresh_meat
Membre du club
Avatar de fresh_meat
Inscrit : 16/06/2004
Messages : 987
Message
#27125
Posté le 20/08/04 à 10:44
Euh, je déborde un peu du sujet mais ce ne serait pas plus simple d'utiliser un EDI comme Kdevelop?
__________________________
I live again !
Image Image

Non à DRM/Palladium !

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

eVias
Membre du club
Avatar de eVias
Inscrit : 25/01/2004
Messages : 1007
Message
#27133
Posté le 20/08/04 à 11:23
IDE Fresh_meat ;)

si c'est bien plus simple avec KDevelop mais cet IDE n'est pas tellement utilisé, je ne sais pas trop pourquoi, bien que moi je ne l'utilise pas non plus. Ce que dit prog.qt est tout à fait vrai il suffit d'utiliser qmake :) Il est également possible de créer les .pro à la main, ce qui est bien simple aussi mais puisque qmake le fait, autant lui laisser faire sa part des choses :)

ciao Smiley
__________________________
Grégory S.

eVias Web & Software Solutions.

Développement Web et logiciel en tout genre et Open Source.

FOSDEM 2008. Venez -y nombreux !

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

pac
Co-Administrateur
Superviseur :
- Méthodologie.
Modérateur :
- Delphi
Chef de projet(s) :
- Jeu Awalé
- EcoSystem
- MySudoku

Avatar de pac
Inscrit : 08/04/2004
Messages : 6570
Message
#27157
Posté le 20/08/04 à 13:32
Merci pour le truc.

Pour parler de Kdevelop, si j'ai bien compris quand on crée un projet Qt, il fait un projet qui utilise les librairies de Qt et de KDE.
Me disant que si je veux que l'appli fonctionne sous d'autres environnements et sous d'autres OS je préfère n'utiliser que les lib de Qt.

Je me trompe ou non ?
__________________________
Lisez la charte, pensez à regarder la FAQ, les tutoriaux, l'annuaire et faites une recherche dans les forums.
N'oubliez pas le Tag [Résolu]Image.

Initiez-vous à Delphi avec Turbo Delphi Explorer, au C ou au C++ avec Code::Blocks et C# avec Visual C# 2005 Express.

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE ALLER VOIR SON SITE

Nothing
Membre du club
Avatar de Nothing
Inscrit : 17/03/2004
Messages : 635
Message
#27159
Posté le 20/08/04 à 13:40
Pour les makefile, ce qu il faut ajouter est dans le man. Les manuels contienent toujours ce genre d info
__________________________
... Until then, we're better off dead
A smile on the lips and a hole in the head ...

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 
POSTER UN NOUVEAU SUJET REPONDRE A CE SUJET

PREMIERE PAGE

PAGE PRECEDENTE Page précédente

Page suivante

PAGE SUIVANTE DERNIERE PAGE

FORUM LIBRAIRIE C++ - GTK



    PAGES : [1] [2]



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