web-dev-qa-db-fra.com

Makefile - séparateur manquant

Duplicate possible:
Faire une erreur: séparateur manquant

Avoir ce code dans le 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?

72
user1827257

Vous devez faire précéder les lignes commençant par gcc et rm par un onglet rigide. Les commandes dans les règles make doivent obligatoirement commencer par une tabulation (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, l'erreur "séparateur manquant" s'affichera également. Si vous ne parvenez pas à insérer des onglets, utilisez le point-virgule:

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

clean: ; rm $(PROG)
203
Jens