Sie müssen den Zeilen beginnend mit gcc
und rm
mit einer harten Registerkarte vorangehen. Befehle in make-Regeln müssen mit einer Registerkarte beginnen (es sei denn, sie folgen einem Semikolon in derselben Zeile). Das Ergebnis sollte wie folgt aussehen:
PROG = semsearch
all: $(PROG)
%: %.c
gcc -o [email protected] $< -lpthread
clean:
rm $(PROG)
Beachten Sie, dass einige Redakteure eine Abfolge von Räumen konfiguriert werden kann, anstelle einer Fest Registerkarte einzufügen. Wenn am Anfang dieser Zeilen Leerzeichen stehen, wird auch der Fehler "fehlende Trennzeichen" angezeigt. Wenn Sie Probleme haben, harte Registerkarten einzufügen, verwenden Sie den Semikolonweg:
PROG = semsearch
all: $(PROG)
%: %.c ; gcc -o [email protected] $< -lpthread
clean: ; rm $(PROG)
Einrückung ist nicht optional in Makefiles. Haben Sie genau das, was Sie gepostet haben, oder ist das Leerzeichen fehlgeschlagen? – Mat
Ich habe es wie ich schrieb. – user1827257
Diese Frage sollte erneut geöffnet werden. Die Antwort hier zeigt auch, wie man ein Makefile ohne Tabs schreibt, um das Problem vollständig zu umgehen. – Jens