2009-07-08 4 views
1

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

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

Я посмотрел в другом месте на сети и линии 15 Makefile имеет ниже:

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

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

сделать: *** Нет правила, чтобы сделать цель 'rexec.ko ', необходимое для загрузки. Стоп.

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

Весь Makefile:

SRCS = rexec.c vnode_if.h KMOD = REXEC КО = $ {KMOD} .ko KLDMOD = т

KLDLOAD =/SBIN/kldload KLDUNLOAD =/SBIN/kldunload

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

выгрузку: $ {KO} $ {KLDUNLOAD} -v -n $ {KO}

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

+0

Что вы делаете, используя i.e, что такое вывод «make -version»? – Troubadour

+0

Кстати, обычно вам нужно избежать скобки открытия, написав < вместо этого персонажа. Аналогичным образом амперсанд (&) должен быть экранирован как &. – Troubadour

+0

Выходной файл make -version является GNU Make 3.80 – 2009-07-10 19:35:46

ответ

0

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

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

.include <bsd.kmod.mk> 

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

+0

, когда я VI в файле перед «$ KLDUNLOAD} -v -n $ {KO}" является вкладкой, я должен ввести в нее символ? Я был бы смущен, если бы это было проблемой, поскольку он продолжает жаловаться на строку 15, где находится .include.И есть пустая строка из того, что я могу сказать, снова используя VI. – 2009-07-10 19:39:21

+0

Никакой персонаж, который нужно добавить, просто хотел проверить, что это вкладка. Проблема заключается в том, чтобы просто определить способ показать пустое пространство, поэтому создание пространства белого пространства настолько злобно. Я просто догадывался, основываясь на возможности того, что предыдущая ошибка сломала .include. Но я думаю, что @Maxi правильно справляется с ситуацией BSD и GNU. –

3

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

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

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

+0

Я загрузил версии 1.1 и 5.0 отсюда: http://sourceforge.net/projects/cerber/files/ – 2009-07-10 19:35:04

+0

О, и нет, я не уверен, что правильно загружаю, я все еще новичок. – 2009-07-10 19:36:20

+0

Ну, это модуль ядра FreeBSD, поэтому вы не можете использовать его на RedHat Linux. Возможно, вы ищете rsh, который включает rexec и который доступен как пакет RHEL. – Maxi

Смежные вопросы