В файле Makefile отсутствует разделитель, несмотря на использование правильного отступа

Хотя я провел некоторое исследование об ошибке и понял, что она имеет отношение к отступу. Я до сих пор не могу понять, что не так с моим Makefile, из-за которого терминал выдает ошибку: Makefile:2: *** missing separator. Stop.во время бега make clean команда. Мой Makefile имеет содержание ниже:

obj-m := S3538332Device.o
KERNEL_DIR /usr/src/linux-headers-$(shell uname -r)
all:
    $(MAKE) -C $(KERNEL_DIR) SUBDIRS=$(PWD) modules
clean:
    rm -rf *.o *.ko *.mod.* *.symvers *.order *~

Я попробовал и побежал cat -e -t -v {Makefile} чтобы убедиться, что вкладки находятся в нужных местах:

obj-m := S3538332Device.o$
KERNEL_DIR /usr/src/linux-headers-$(shell uname -r)$
all:$
^I$(MAKE) -C $(KERNEL_DIR) SUBDIRS=$(PWD) modules$
clean:$
^Irm -rf *.o *.ko *.mod.* *.symvers *.order *~$

Я очень плохо знаком с makefile и c программированием в целом, и мне не удается найти что-то не так с моим кодом. Может кто-нибудь помочь мне выяснить, в чем проблема, которая вызывает ошибку?

1 ответ

Решение

Вам не хватает оператора присваивания, оно должно быть

KERNEL_DIR = /usr/src/linux-headers-$(shell uname -r)

или обычно KERNEL_DIR обычно устанавливается, только если он еще не установлен:

KERNEL_DIR ?= /usr/src/linux-headers-$(shell uname -r)
Другие вопросы по тегам