# # MakeFile assignment 2 # Variables CC=gcc LINK=gcc CFLAGS=-c -Wall -I. OBJECT_FILES = cmpsc311-f13-assign2.o a2support.o #Suffix rules .SUFFIXES: .c .o .co: $(CC) -c $(CFLAGS) -o $@ $< #Productions cmpsc311-f13-assign2 : $(OBJECT_FILES) $(LINK) $(OBJECT_FILES) -o $@ #Dependencies cmpsc311-f13-assign2.o : cmpsc311-f13-assign2.c a2support.h a2support.o : a2support.c a2support.h clean: rm cmpsc311-f13-assign2.o rm a2support.o
Chaque fois que j’utilise la commande make Makefile
elle ne fait rien, y a-t-il quelque chose qui ne va pas avec mon makefile ou est-ce un autre problème?
En exécutant la commande suivante, ne doutez rien:
gcc -o cmpsc311-f13-assign2 cmpsc311-f13-assign2.c a2support.c a2support.h -I.
Chaque fois que j’utilise la commande
make Makefile
elle ne fait rien
make Makefile
tente de créer Makefile
. Comme vous n’avez aucune règle pour le créer, il n’y a rien à faire.
Généralement, make
est invoqué sans arguments; il utilise Makefile
par défaut et tente de définir la première cible (dans votre cas, cmpsc311-f13-assign2
).
Vous pouvez utiliser l’option -f
pour spécifier un fichier Make différent à utiliser:
make -f foo.mk
ou vous pouvez utiliser un argument pour spécifier ce qu’il faut construire:
make clean
ou les deux:
make -f foo.mk clean
Outre la réponse mentionnée ci-dessus, vous devez également append un caractère TAB à la ligne 14.
$(CC) -c $(CFLAGS) -o $@ $<