makefile: отсутствует разделитель - PullRequest
9 голосов
/ 23 июля 2010
#kernel build system and can use its lanauge
ifneq($(KERNELRELEASE),)
 obj-m:=helloworld.o
else
 KDIR:= /lib/modules/2.6.33.3-85.fc13.i686/build
all:
 make -C $(KDIR) M=$(PWD) modules
clean:
 rm -f *.ko *.o *.mod.o *.mod.c *.symvers
endif

Ошибка:

makefile: 2: *** отсутствует разделитель. остановки

но для ifneq($(KERNELRELEASE),), если я добавлю вкладку раньше, я получу еще одну ошибку:

makefile: команды 2: *** начинаются до первой цели. остановка

Ответы [ 4 ]

21 голосов
/ 23 июля 2010

Между ifneq и (.

должен быть пробел. Префикс TAB означает, что это команда оболочки, поэтому убедитесь, что команды оболочки (make и rm)начинаются с TAB, а все остальные строки, такие как ifneq, не начинаются с TAB.

1 голос
/ 23 июля 2013

Make жалуется, что вторая строка не начинается с вкладки.Ваша IDE / texteditor может сохранять файл, используя пробелы как эквивалент символа табуляции.Либо настройте в среде IDE использование символа табуляции, либо воспользуйтесь простым редактором, например vim или nano, и замените начальный пробел во второй строке табуляцией.

0 голосов
/ 23 июля 2010

Вам не хватает второй части вашего условного ifneq ($ (KERNELRELEASE),) должно быть что-то после запятой, например, "2.6.17" (например).

0 голосов
/ 23 июля 2010

Проверьте перед obj-m: и KDIR: и т. Д. Ваши вкладки вставляются как пробелы?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...