Makefile
Résolu
next
Messages postés
43
Statut
Membre
-
next Messages postés 43 Statut Membre -
next Messages postés 43 Statut Membre -
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 ?
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 ?
A voir également:
- Makefile séparateur manquant
- Codec manquant - Guide
- Séparateur word - Guide
- Publipostage séparateur de milliers ✓ - Forum Word
- Nanny makefile ✓ - Forum Linux / Unix
- Problème impression pdf texte manquant - Forum PDF
9 réponses
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 :
https://gl.developpez.com/tutoriel/outil/makefile/
Bonne chance
https://gl.developpez.com/tutoriel/outil/makefile/
Bonne chance
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.
peut-tu me montré comment faire sur mon Makefile ça m'aiderai vraiment à comprendre.
Ben je sais pas dans ton cas ça ressemblerai plutôt à :
(ou chaque alinéa est une tabulation)
Bonne chance
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
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
<5> Les retours à la ligne et les tabulations
<6> As-tu bien mis des tabulations :
<6> As-tu bien mis des tabulations :
clean: <TABULATION>${RM} $(OBJS) *.c~ $(BIN): $(OBJS) <TABULATION>$(CC) $(LINKOBJET) -o $(BIN) $(LDFLAGS) ...