2013-01-01 15 views
68

Eventuali duplicati:
Make error: missing separatorMakefile - manca separatore

avere questo codice nel makefile:

PROG = semsearch 
all: $(PROG) 
%: %.c 
gcc -o [email protected] $< -lpthread 

clean: 
rm $(PROG) 

e l'errore

missing separator. stop. 

Qualcuno può aiutarmi?

+3

Il rientro non è facoltativo nei Makefile. È quello che hai esattamente come lo hai postato o gli spazi bianchi sono stati cancellati? – Mat

+0

L'ho preso come ho scritto. – user1827257

+5

Questa domanda deve essere riaperta. La risposta qui mostra anche come scrivere un Makefile senza tabulazioni, aggirando completamente il problema. – Jens

risposta

193

È necessario precedere le righe che iniziano con gcc e rm con una scheda difficile. I comandi nelle regole di creazione sono necessari per iniziare con una scheda (a meno che non seguano un punto e virgola sulla stessa riga). Il risultato dovrebbe essere simile a questo:

PROG = semsearch 
all: $(PROG) 
%: %.c 
     gcc -o [email protected] $< -lpthread 

clean: 
     rm $(PROG) 

Nota che alcuni editori possono essere configurati per inserire una sequenza di spazi invece di una scheda duro. Se ci sono spazi all'inizio di queste righe vedrai anche l'errore "separatore mancante". Se si verificano problemi nell'inserimento di schede rigide, utilizzare il punto e virgola:

PROG = semsearch 
all: $(PROG) 
%: %.c ; gcc -o [email protected] $< -lpthread 

clean: ; rm $(PROG) 
+0

Grazie, ora funziona :) – user1827257

+2

Sarebbe gradito un upvote (fare clic sulla freccia su) :-) – Jens

+9

grazie per il punto e virgola – cluv