Posez votre question Signaler

Makefile [Résolu]

next 43Messages postés 15 août 2007Date d'inscription - Dernière réponse le 10 janv. 2008 à 02:08
Bonjour à tous, voila j'ai créé un fichier Make file est j'ai plusieurs problémes...
Quand j'essaye de placer un @echo j'ai le message
Makefile:16: *** séparateur manquant (voulez-vous dire TAB au lieu de 8 blancs d'espacement?). Arrêt.
ou meme pour clean j'ai le message :
make: *** Pas de règle pour fabriquer la cible « rm », nécessaire pour « clean ». Arrêt.
voici mon code :
OBJS = main.o command.o
LINKOBJET = main.o command.o
BIN = ircweb
CC = gcc
CFLAGS =-W -Wall -ansi -pedantic -D_REENTRANT -std=c99
LDFLAGS=-I /usr/include/mysql/ -L /usr/lib/mysql/ -lmysqlclient -lpthread
RM = rm -f
all: $(BIN) clean
clean: ${RM} $(OBJS) *.c~
$(BIN): $(OBJS)
$(CC) $(LINKOBJET) -o $(BIN) $(LDFLAGS)
main.o: main.c
$(CC): $(CFLAGS) -c main.c -o main.o
command.o: command.c
$(CC): $(CFLAGS) -c command.c -o command.c
@echo fin de la compilation.
Pouvez vous m'aider ?
Lire la suite 

Makefile »

9 réponses
Réponse
+2
moins plus
Après chaque cible, chaque commande doit être à la ligne et précédée d'une tabulation (et pas d'une suite d'espace). Pour plus d'informations :
http://gl.developpez.com/tutoriel/outil/makefile/

Bonne chance
Ajouter un commentaire
Réponse
+0
moins plus
merci, mais j'avais déjà lu ce tuto là, et il m'aide pas vraiment désolé ...

peut-tu me montré comment faire sur mon Makefile ça m'aiderai vraiment à comprendre.
Ajouter un commentaire
Réponse
+0
moins plus
Ben je sais pas dans ton cas ça ressemblerai plutôt à :
OBJS = main.o command.o
LINKOBJET = main.o command.o
BIN = ircweb
CC = gcc
CFLAGS =-W -Wall -ansi -pedantic -D_REENTRANT -std=c99
LDFLAGS=-I /usr/include/mysql/ -L /usr/lib/mysql/ -lmysqlclient -lpthread
RM = rm -f

all: $(BIN) clean

clean: 
    ${RM} $(OBJS) *.c~

$(BIN): $(OBJS)
    $(CC) $(LINKOBJET) -o $(BIN) $(LDFLAGS)

main.o: main.c
    $(CC) $(CFLAGS) -c main.c -o main.o

command.o: command.c
    $(CC): $(CFLAGS) -c command.c -o command.c
    @echo fin de la compilation. 

(ou chaque alinéa est une tabulation)

Bonne chance
Ajouter un commentaire
Réponse
+0
moins plus
quest-ce qui à changé entre mon code et celui que tu ma donnée ?
Ajouter un commentaire
Réponse
+0
moins plus
j'ai essayé le code est j'ai maintenant : *** séparateur manquant . Arrêt.
Ajouter un commentaire
Réponse
+0
moins plus
<5> Les retours à la ligne et les tabulations
<6> As-tu bien mis des tabulations :
clean: 
<TABULATION>${RM} $(OBJS) *.c~
$(BIN): $(OBJS)
<TABULATION>$(CC) $(LINKOBJET) -o $(BIN) $(LDFLAGS)
...
Ajouter un commentaire
Réponse
+0
moins plus
je vien de comprendre avec ton dernier post, enfaite il faut utiliser la touche tab. car maintenant ça fonctionne sans probléme encore merci :)
Ajouter un commentaire
Réponse
+0
moins plus
Parfait, bonne continuation :-)
Ajouter un commentaire
Réponse
+0
moins plus
Merci pour tout. pour la récapitulation, remonter en haut et liser les posts (Je sais pas trop comment récapituler avec des mots :) )
Ajouter un commentaire
Ce document intitulé « Makefile » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
5 extensions si vous voulez revenir à l'ancien Facebook