makefile - make 命令 makefile 错误 :18: *** missing separator. 停止

标签 makefile gnu-make

对于下面复制的 make 文件,我收到缺少分隔符的错误。选项卡空间似乎没有任何问题。

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

最佳答案

第 18 行是 gcc -fPIC -g -c -Wall mymemory.cpp。 Make 需要一个分隔符,通常为 :。它不会将此行检测为命令。您输错了意图:应该有制表符的地方有空格。

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

关于makefile - make 命令 makefile 错误 :18: *** missing separator. 停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10097193/

相关文章:

c - 在 makefile 中批量构建源代码

c - 使用 libevent 编译时对 `event_new' 的 undefined reference

recursion - 子目录中的递归 make

linux - 我的 Makefile 中的 Bash 命令 ID 不起作用

c - 'All' 在 Makefile 中属于什么地方?

makefile - makefile 中的 "$(@:%.o=%.d)"是什么意思?

makefile - 我如何知道提供了什么 -j 选项

macos - 如何设置 GNU make 在 macOS 上使用默认的 gcc?

Makefile::= 和::= 赋值运算符之间的区别

c++ - Makefile 模式规则无法匹配