“make clean” se traduit par “Pas de règle pour faire de cible "propre"”
Je suis sous Ubuntu 10.04. Chaque fois que j'exécute make clean
, j'obtiens ceci:
faire: *** Pas de règle pour faire de cible "propre". Stop.
Voici mon makefile:
CC = gcc
CFLAGS = -g -pedantic -O0 -std=gnu99 -m32 -Wall
PROGRAMS = digitreversal
all : $(PROGRAMS)
digitreversal : digitreversal.o
$(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS)
.PHONY: clean
clean:
@rm -f $(PROGRAMS) *.o core
Des idées pourquoi sa ne fonctionne pas?
EDIT: Il semble que faire:
make -f Makefile.txt clean
œuvres. Maintenant: est-il un paramètre à changer si je n'ai pas à faire la -f Makefile.txt
à chaque fois?
- Assurez-vous d'utiliser le droit
makefile
. Il peut arriver que le ci-dessus est nomméMakefile
et vous avez également unmakefile
qui n'ont pasclean
cible et lorsque vous appelezmake clean
, faire par défaut utilisemakefile
et pasMakefile
. - il suffit de renommer votre
Makefile.txt
àMakefile
sans extension dans le nom. - J'ai eu le même problème sur mon mac. Pour une raison quelconque, le
MakeFile
n'a pas été trouvé par la commande make. renommage demakefile
résolu le problème. il est absurde si!
Vous devez vous connecter pour publier un commentaire.
Il semble que votre makefile du nom n'est pas "Makefile" ou "makefile". Dans le cas où il est différent de dire " abc "essayez d'exécuter le" faire-f abc de la propre"
Je suppose que vous avez compris maintenant.
La réponse est cachée dans votre premier mail lui-même.
La
make
de commande par défaut recherchemakefile
,Makefile
, etGNUMakefile
que le fichier d'entrée et vous avez de laMakefile.txt
dans votre dossier. Il suffit de supprimer l'extension de fichier (.txt
) et cela devrait fonctionner.Vous avez été victime de la plus commune des erreurs dans les fichiers Makefile. Vous avez toujours besoin de mettre une Tabulation au début de chaque commande. Vous avez mis des espaces avant le
$(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS)
et@rm -f $(PROGRAMS) *.o core
lignes. Si vous les remplacez par un Onglet, vous serez amende.Toutefois, cette erreur ne conduit pas à un "Pas de règle pour faire de la cible ..." erreur. Que signifie probablement que votre question se situe au-delà de votre Makefile. Avez-vous vérifié c'est le bon Makefile, comme dans celui que vous voulez être en précisant vos commandes? Essayez explicitement de la passer en paramètre à faire,
make -f Makefile
et laissez-nous savoir ce qui se passe.No rule to make target
d'erreur, vous obtiendrez unmissing separator
erreur à la place.Vérifier que le fichier est appelé GNUMakefile, makefile ou Makefile.
Si elle est appelée à rien d'autre (et vous ne voulez pas de le renommer), puis essayez:
make-f othermakefilename propre
Cela fonctionne pour moi. Êtes-vous sûr que vous êtes à l'indentation avec des onglets?