В файле 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)