Pourquoi mon Makefile ne fait rien?

# # 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 $@ $<