出错:缺少分隔符

时间:2009-07-08 21:34:14

标签: makefile rexec

我正在尝试将rexec安装到Redhat Enterprise Release 4中。每当我尝试使用make命令时,我都会收到以下错误。

Makefile:15:***缺少分隔符。停止。

我在网上的其他地方看过,Makefile的第15行有以下内容:

.include(我不确定为什么,但这个网站正在消除后面的内容。包括,它是由<>包围的bsd.kmod.mk)

我已经使用vi来确保中间的空间是TAB而不是8个空格,这不能解决问题。我已经在.include前放置了一个TAB,因为我在某处开始时必须有一个标签,然后我得到一个不同的错误:

make:***没有规则来制作'load'所需的目标'rexec.ko'。停止。

我不确定我应该做些什么才能安装rexec,任何线索?

整个Makefile:

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

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

加载:$ {KO}     $ {KLDLOAD} -v ./$ {KO}

卸载:$ {KO}     $ {KLDUNLOAD} -v -n $ {KO}

.include(我不确定为什么,但这个网站正在消除后面的内容。包括,它是由<>包围的bsd.kmod.mk)

2 个答案:

答案 0 :(得分:3)

.include指令是BSD Make语法。 Linux上的默认make命令是GNU Make,它支持稍微不同的语法。

此外,您在RedHat系统上找不到bsd.kmod.mk,并且使用BSD kldload命令也没有运气。

你确定你下载了正确的东西吗?

答案 1 :(得分:0)

我相信.include应该使用空格。查看Makefile的最后一部分。它应该像这样结束:

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

.include <bsd.kmod.mk>

其中&lt; tab&gt;是一个实际的制表符。那个空白行最好是空白;没有棘手的空白。