Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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 smile!

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