#1 Le 03/07/2008, à 17:22
- wilfain
Probleme de compilation makefile
Bonjour à tous c'est mon premier post ici:D et j'ai un problème,
j'ai suivi ce tutoriel :http://wiki.irrlicht.fr/index.php?title … tallUbuntu pour installer Irrlicht le moteur 3D, pendant l'installation pas de problème Irrlicht est installer et marche . Mais arriver à la création du template il y a un hic, le template est créer mais lorsque j'essaye de le compiler avec make dans la konsole de kubuntu, cette érreur survient:
make: *** Pas de règle pour fabriquer la cible <<g++>>, nécessaire pour <<all>>.
Voila le code qui se trouve dans le makefile:
CPP = g++
OPTS = -I"../irrlicht-1.2/include" -I"/usr/X11R6/include" -L"/usr/X11R6/lib" -L"../irrlicht-1.2/lib/Linux" -lIrrlicht -lGL -lGLU -lXxf86vm -lXext -lX11
all: $(CPP) main.cpp -o template $(OPTS)
clean: rm template
Merci de votre aide !
wilfain
Hors ligne
#2 Le 03/07/2008, à 18:36
- slasher_fun
Re : Probleme de compilation makefile
Le paquet build-essential est bien installé ?
Hors ligne
#3 Le 03/07/2008, à 18:38
- wilfain
Re : Probleme de compilation makefile
Oui il est installé
Merci de vouloir m'aider:)
wilfain
Hors ligne
#4 Le 03/07/2008, à 18:41
- snarky
Re : Probleme de compilation makefile
Ton fichier doit être comme ça :
CPP = g++
OPTS = -I"../irrlicht-1.2/include" -I"/usr/X11R6/include" -L"/usr/X11R6/lib" -L"../irrlicht-1.2/lib/Linux" -lIrrlicht -lGL -lGLU -lXxf86vm -lXext -lX11
all:
$(CPP) main.cpp -o template $(OPTS)
clean:
rm template
Hors ligne
#5 Le 03/07/2008, à 18:45
- wilfain
Re : Probleme de compilation makefile
Cela me met une nouvelle erreur
makefil:6: *** séparateur manquant . Arret
Merci pour vos réponses
wilfain
Dernière modification par wilfain (Le 03/07/2008, à 18:46)
Hors ligne
#6 Le 03/07/2008, à 20:05
- Link31
Re : Probleme de compilation makefile
Les caractères d'indentation sont des tabulations.
Hors ligne
#7 Le 03/07/2008, à 20:12
- wilfain
Re : Probleme de compilation makefile
Oui ce sont bien des tabulations.
wilfain
Hors ligne
#8 Le 04/07/2008, à 11:48
- wilfain
Re : Probleme de compilation makefile
Personne n'as de solution a mon problème?
wilfain
Hors ligne
#9 Le 04/07/2008, à 12:08
- robrob
Re : Probleme de compilation makefile
Ben tu as une erreur dans ton makefile, poste la dernière version si tu veux de l'aide...
Hors ligne
#10 Le 04/07/2008, à 12:41
- wilfain
Re : Probleme de compilation makefile
La dernière version??? de mon makefile?
c'est celle que m'a donné snarky plus haut
Merci pour votre aide
wilfain
Hors ligne
#11 Le 04/07/2008, à 13:39
- philou8237
Re : Probleme de compilation makefile
Voila un exemple de Makefile complet.
Après chaque intitulé de règle, les lignes doivent impérativement démarrer avec une tabulation, et une ligne vide (complètement vide) doit séparer chaque règle.
Les options de compilation standard integrées par les Makefiles sont les CXXFLAGS et LDFLAGS dans le cas du C++, et les CFLAGS et LDFLAGS dans le cas du C.
#
# Makefile for Project in /users/phil/loadPacketOlsr
#
# Made by Phil
#
# Started on Tue Jun 24 16:30:08 2008 phil
# Last update Tue Jun 24 16:30:08 2008 phil
#
CXX = g++
AR = ar
RM = rm
MAKE = make
CXXFLAGS = -Wall -W -Werror -D__LINUX__ -I../includes
LDFLAGS = #-Llib/lsa -llsa
ARFLAGS = cr
RMFLAGS = -rf
TARGET = loadPaquetsOlsr
SOURCE = tools.cpp \
aff.cpp \
main.cpp
OBJS = $(SOURCE:.cpp=.o)
HEADERS = $(SOURCE:.cpp=.h) defines.h type_olsr.h olsr_types.h
TODEL = tags *~ .*.swp
all: $(TARGET)
$(TARGET) : $(OBJS)
$(CXX) -o $(TARGET) $(OBJS) $(LDFLAGS)
.c.o :
$(CXX) $(CXXFLAGS) -c $<
.PHONY: clean
clean :
$(RM) $(RMFLAGS) $(OBJS) $(TODEL)
distclean : clean
$(RM) $(RMFLAGS) $(TARGET)
Edit: Juste pour une meilleure compréhention : $< est remplacé successivement par l'ensemble des éléments de $(SOURCE). $SOURCE est une variable standard de make, il sait donc laquelle utiliser pour remplacer $<.
Ne te préocupe pas du .PHONY, c'est pour "optimiser" la recompilation.
Dernière modification par philou8237 (Le 04/07/2008, à 13:47)
Hors ligne
#12 Le 04/07/2008, à 14:23
- wilfain
Re : Probleme de compilation makefile
Philou j'ai essayé ton code et j'ais une erreur:
makefile:20: *** séparateur manquant . Arrêt.
Je ne comprend pas le problème:(
wilfain
Hors ligne
#13 Le 04/07/2008, à 14:29
- philou8237
Re : Probleme de compilation makefile
oki. C'est que tu as un espace ou un truc dans le style qui te gène. C'est le problème avec les Makefiles, c'est que c'est sensible à des trucs bêtes.
Essaie de réécrire les lignes plutôt que de copier-coller le fichier. Au moins tu ne risque pas de recopier des caractères qui pourraient géner (genre espace, etc...), et ça devrait mieux passer.
Hors ligne
#14 Le 04/07/2008, à 14:54
- wilfain
Re : Probleme de compilation makefile
Je l'ai recopié moi même et il y a toujours la même erreur.
wilfain
Hors ligne
#15 Le 04/07/2008, à 15:02
- philou8237
Re : Probleme de compilation makefile
Peux tu me montrer le Makefile une fois modifié par toi ?
Hors ligne
#16 Le 04/07/2008, à 15:07
- wilfain
Re : Probleme de compilation makefile
Voila le makefile:
CXX = g++
AR = ar
RM = rm
MAKE = make
CXXFLAGS = -Wall -W -Werror -D__LINUX__ -I../includes
LDFLAGS = #-Llib/lsa -llsa
ARFLAGS = cr
RMFLAGS = -rf
TARGET =loadPaquetsOlsr
SOURCE = tools.cpp \
aff.cpp \
main.cpp
OBJS = $(SOURCE:.cpp=.o)
HEADERS = $(SOURCE:.cpp=.h) defines.h type_olsr.h olsr_types.h
TODEL = tags *~ .*.swp
all: $(TARGET)
$(TARGET) : $(OBJS)
$(CXX) -o $(TARGET) $(OBJS) $(LDFLAGS)
.c.o :
$(CXX) $(CXXFLAGS) -c $<
.PHONY: clean
clean :
$(RMM) $(RMFLAGS) $(OBJS) $(TODEL)
distclean : clean
$(RM) $(RMFLAGS) $(TARGET)
wilfain
Hors ligne
#17 Le 04/07/2008, à 15:16
- philou8237
Re : Probleme de compilation makefile
ok. Donc la ligne 20 est celle là :
$(CXX) -o $(TARGET) $(OBJS) $(LDFLAGS)
- Es-tu sur que $(CXX) est bien précédé d'une tabulation ?
- As tu vérifié qu'il n'y a pas d'espace après $(OBJS), à la ligne du dessus, ni après $(LDFLAGS), sur cette ligne ?
Normalement ce type d'erreur intervient lorsque la ligne démarre avec des espaces plutôt qu'avec une tabulation. Vérifie également que ton éditeur ne fasse pas la transformation pour toi, ça peut arriver si il est mal ou pas configuré (emacs et vim peuvent remplacer des tab par des espaces). Essaie d'ouvrir ton Makefile avec un autre éditeur, si possible tout simple, et remplace le début de ligne par une tabulation, pour voir ce que ça donne.
C'est le seul problème que je connaisse qui mène à ce genre d'erreur.
Hors ligne
#18 Le 04/07/2008, à 15:23
- wilfain
Re : Probleme de compilation makefile
J'ai vérifié et codeblocks changait mes tabulations en espaces, donc j'ais refais toutes les tabulations et voila une nouvelle erreur:rolleyes:
make: *** Pas de règle pour fabriquer la cible <<tools.o>>, nécessaire pour <<loadPaquetsOlsr>>
wilfain
Dernière modification par wilfain (Le 04/07/2008, à 15:28)
Hors ligne
#19 Le 04/07/2008, à 16:32
- qqun
Re : Probleme de compilation makefile
salut ,
je pense que philou8237 voulait que tu adaptes ton makefile en s'inspirant du sien !
#20 Le 04/07/2008, à 16:42
- wilfain
Re : Probleme de compilation makefile
Ah d'accord mais le problème c'est que le makefile je ne sais pas en faire, celui du départ vient d'un tuto que j'ais citer dans mon premier post.
Hors ligne
#21 Le 04/07/2008, à 17:26
- qqun
Re : Probleme de compilation makefile
oui mais je pense que ton probleme est aussi lie a un probleme de tabulation dans ton makefile,
tu devrais verifier les tabultions de ton makefile !
#22 Le 04/07/2008, à 20:18
- wilfain
Re : Probleme de compilation makefile
J'ais revérifier les tabulations et toujours la même erreur qu'au dessus,
sinon auriez-vous un tutoriel ou je pourrais apprendre a construire un makefile?
Merci
wilfain
Hors ligne
#23 Le 04/07/2008, à 20:40
- telliam
Re : Probleme de compilation makefile
remplace .c.o par .cpp.o
"- Un intellectuel assis va moins loin qu'un con qui marche."
Maurice Biraud - Un Taxi pour Tobrouk
Michel Audiard
Hors ligne
#24 Le 04/07/2008, à 20:43
- telliam
Re : Probleme de compilation makefile
De plus la définition de HEADERS semble n'être pas utilisé.
"- Un intellectuel assis va moins loin qu'un con qui marche."
Maurice Biraud - Un Taxi pour Tobrouk
Michel Audiard
Hors ligne
#25 Le 04/07/2008, à 20:48
- Pfeifer
Re : Probleme de compilation makefile
Hello !!
Moi aussi je me suis mis il y a pas longtemps au makefile!
J'ai trouvé de l'aide dans ce Tutorial qui explique bien comment ça fonctione!!
http://gl.developpez.com/tutoriel/outil/makefile/
Puisse cela t'aider aussi!!
Pfeifer
Dernière modification par Pfeifer (Le 04/07/2008, à 20:49)
Hors ligne