Linie poprzedzające gcc
i rm
należy poprzedzać twardą zakładką. Polecenia w regułach tworzenia są wymagane, aby rozpocząć od tabulatora (chyba że podążają średnikiem w tej samej linii). Wynik powinien wyglądać następująco:
PROG = semsearch
all: $(PROG)
%: %.c
gcc -o [email protected] $< -lpthread
clean:
rm $(PROG)
pamiętać, że niektóre redaktorzy mogą być skonfigurowane tak, aby wstawić sekwencję przestrzeni zamiast karcie twardym. Jeśli na początku tych linii znajdują się spacje, zobaczysz także błąd "brakującego separatora". Jeśli masz problemy z wstawianiem twardych zakładek, użyj średnika:
PROG = semsearch
all: $(PROG)
%: %.c ; gcc -o [email protected] $< -lpthread
clean: ; rm $(PROG)
Wcięcie nie jest opcjonalne w plikach Makefile. Czy to, co masz dokładnie tak, jak to opublikowałeś lub czy spacja została zmazana? – Mat
Mam to, jak napisałem. – user1827257
To pytanie powinno zostać ponownie otwarte. Odpowiedź tutaj pokazuje również, jak napisać plik Makefile bez kart, całkowicie omijając problem. – Jens