Makefile – séparateur manquant

Duplication possible:
Faire une erreur: séparateur manquant

Avoir ce code dans makefile:

PROG = semsearch all: $(PROG) %: %.c gcc -o $@ $< -lpthread clean: rm $(PROG) 

et l’erreur

 missing separator. stop. 

Est-ce que quelqu’un peut m’aider?

Vous devez faire précéder les lignes commençant par gcc et rm par un onglet hard. Les commandes dans les règles de création doivent commencer par un onglet (sauf si elles suivent un point-virgule sur la même ligne). Le résultat devrait ressembler à ceci:

 PROG = semsearch all: $(PROG) %: %.c gcc -o $@ $< -lpthread clean: rm $(PROG) 

Notez que certains éditeurs peuvent être configurés pour insérer une séquence d'espaces au lieu d'un onglet rigide. S'il y a des espaces au début de ces lignes, vous verrez également l'erreur "séparateur manquant". Si vous rencontrez des problèmes pour insérer des tabs durs, utilisez le point-virgule:

 PROG = semsearch all: $(PROG) %: %.c ; gcc -o $@ $< -lpthread clean: ; rm $(PROG)