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

sub*_*ian 35 makefile gnu-make

对于下面复制的以下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:
 \rm *.o *~ Snapshot
Run Code Online (Sandbox Code Playgroud)

Gil*_*il' 64

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

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

  • 留下可怜的文本编辑器 - 问题是`make`是愚蠢的:\ (7认同)
  • 好像问题出在我的gedit上,我把make Tab设置为空格.因此,错误.谢谢!!! (3认同)

Dre*_*kes 22

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


小智 5

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

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