Ошибка: отсутствует разделитель - PullRequest
1 голос
/ 09 июля 2009

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

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

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

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

Я использовал vi, чтобы убедиться, что пробел в середине - это TAB, а не 8 пробелов, это не решает проблему. Я поместил вкладку перед .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 ./$ndomKOgoti

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

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

Ответы [ 2 ]

3 голосов
/ 09 июля 2009

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

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

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

0 голосов
/ 09 июля 2009

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

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

.include <bsd.kmod.mk>

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

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