Makefile 报错: resources.c 文件 *** 遗漏分隔符

一般来说在Makefile中,如果报错“*** 遗漏分隔符”, 应该是该使用 TAB的地方使用了空格,可是我的报错却是在.c 文件里面,特别奇怪,先说一下背景 --

用Makefile 管理一个c++ 工程,全部是.cpp文件,然后,需要添加一个  resource.c 文件进来,  Makefile 内容如下:

SRCS += main.cpp      \
        Application.cpp  \
        resources.c

DEPS += $(SRCS:%.cpp=%.d)

...
...
-include $(DEPS)

其中 resource.c 是新添加, 把它换成 resource.cpp 也不会报错。 经过一番斗争,终于找到了原因:

原来 -include $(DEPS),展开是 include  main.d  Application.d 等一系列.d文件, 这些 .d文件是符合 makefile 的语法, 增加resourc.c 后,  DEPS  += $(SRCS:%.cpp=%.d)不能把 .c 文件名 替换成 .d文件名, 展开后,变成了 include resource.c , 而这个.c文件是不符合Makefile语法的, make 把这个resource.c 当成了 makefile 文件,就出现了标题中的错误。

你可能感兴趣的:(编程,makefile)