Ошибка: отсутствует разделитель

Я пытаюсь установить rexec в Redhat Enterprise Release 4. Каждый раз, когда я пытаюсь использовать команду make, я получаю следующую ошибку.

Makefile: 15: *** отсутствует разделитель. Стоп.

Я посмотрел в другом месте в сети, и строка 15 Makefile имеет следующее:

.include (я не уверен, почему, но этот сайт скрывает то, что следует за.include, это bsd.kmod.mk, окруженный <>)

Я использовал vi, чтобы убедиться, что пробел в середине - это табуляция, а не 8 пробелов, это не решает проблему. Я поместил TAB перед.include, когда я где-то читал, в начале должна быть вкладка, затем я получаю другую ошибку:

make: *** Нет правила для создания цели 'rexec.ko', необходимой для 'load'. Стоп.

Я не уверен, что еще я должен сделать, чтобы установить rexec, какие-нибудь подсказки?

Весь Makefile:

SRCS = rexec.c vnode_if.h KMOD = rexec KO = $ {KMOD}.ko KLDMOD = t

KLDLOAD = / sbin / kldload KLDUNLOAD = / sbin / kldunload

нагрузка: ${KO} ${KLDLOAD} -v ./$ndomKO}

выгрузить: $ {KO} $ {KLDUNLOAD} -v -n $ {KO}

.include (я не уверен, почему, но этот сайт скрывает то, что следует за.include, это bsd.kmod.mk, окруженный <>)

2 ответа

.include Директива BSD Make синтаксис. По умолчанию make В Linux команда GNU Make поддерживает несколько иной синтаксис.

Кроме того, вы не найдете bsd.kmod.mk в вашей системе RedHat, и вам не повезет с использованием BSD kldload команда.

Вы уверены, что загрузили правильную вещь?

Я считаю, что.include должно использовать пробелы. Проверьте последнюю часть Makefile. Это должно закончиться так:

unload: ${KO}
<tab>${KLDUNLOAD} -v -n ${KO}

.include <bsd.kmod.mk>

Где - фактический символ табуляции. И эту пустую строку лучше оставить пустой; нет хитрых пробелов на нем.

Другие вопросы по тегам