Das folgende Makefile funktioniert nicht und ich bin nicht sicher, was los ist

Das folgende Makefile funktioniert nicht und ich bin nicht sicher, was los ist
obj-m += task.o
all:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules
clean:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean

Makefile:3: *** Trennzeichen fehlt. Stopp.

Antwort1

Überprüfen Sie, ob Sie vor dem Eintrag das echte Tabulatorzeichen haben, z. B.

all:
    make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules

Es muss \t sein, das Tabulatorzeichen, nicht nur Leerzeichen.

Zur Überprüfung können Sie Folgendes ausführen cat -T Makefile:

$ cat -T Makefile 
all:
^Iecho "foo"
foo:
^Iecho "bar"

^Izeigt ein Tabulatorzeichen an. Stellen Sie sicher, dassalleZeilen, die auf ein Ziel folgen, werden durch Tabulatoren eingerückt.

verwandte Informationen