make命令makefile出错:18:***缺少分隔符。停止

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了make命令makefile出错:18:***缺少分隔符。停止相关的知识,希望对你有一定的参考价值。

对于下面复制的以下make文件,我收到了丢失的分隔符错误。 tabspace似乎没有任何问题。

OBJS = driver.o snapshot.o
SHOBJS = malloc.o mymemory.o
CC = g++
DEBUG = -g
CFLAGS = -Wall -c $(DEBUG)
LFLAGS = -Wall $(DEBUG)
Snapshot: $(OBJS)
  $(CC) $(LFLAGS) $(OBJS) -o Snapshot
driver.o: snapshot.h driver.cpp
  $(CC) $(CFLAGS) driver.cpp
snapshot.o: mymemory.h snapshot.h snapshot.cpp
  $(CC) $(CFLAGS) snapshot.cpp
libmymemory.so: $(SHOBJS)
  gcc -shared -o libmymemory.so malloc.o mymemory.o
malloc.o: malloc.c
  gcc -fPIC -g -c -Wall malloc.c
mymemory.o: mymemory.cpp
 gcc -fPIC -g -c -Wall mymemory.cpp 
clean:
 
m *.o *~ Snapshot
答案

第18行是gcc -fPIC -g -c -Wall mymemory.cpp。 Make期待一个分隔符,通常是:。它没有将此行检测为命令。你错误地输入了意图:你有空格你应该有一个标签。

好的编辑器突出显示以空格开头的makefile行,但看起来应该以制表符开头。

另一答案

当文件在makefile中的行开头使用空格而不是制表符时,我看到了此错误消息。

另一答案

如果您从互联网复制粘贴代码,则会发生这种情况。使用删除键从缩进行中删除所有空格。然后按Tab键,每行只有一次。

保存并尝试再次运行该文件。它现在应该工作。这对我有用。

另一答案

我不知道它是否准确或是否在线粘贴代码的工件,但文件中最后两个命令的缩进看起来比它上面的命令要小。仔细检查你的间距。

以上是关于make命令makefile出错:18:***缺少分隔符。停止的主要内容,如果未能解决你的问题,请参考以下文章

出错:缺少分隔符

linux 中make命令出错是怎么回事了

makefile错误***缺少分隔符。停止

make命令和makefile

make命令

linux 源代码程序终端安装make后出现 make: *** 没有指明目标并且找不到 makefile。 停止。