GNUMake:makefile targer中缺少分隔符问题



这是我的Makefile片段。

1. $(DIR_REL64)/%: $(SHIFT_BINDIR64)/%
2.  $(copy_file)
3.ifneq ($(TEST),0)
4.ifneq($(LOG),0)
5.  if [ -d $(TGT32)/tools/test/64bit ]; then cp -f $< $(TGT32)/tools/test/64bit; fi
6.else
7.  if [ -d $(TGT64)/tools/test/64bit ]; then cp -f $< $(TGT64)/tools/test/64bit; fi
8.endif 
9.else
10. if [ -d $(TGT64)/bin ]; then cp -f $< $(TGT64)/bin; fi
11.endif

我收到错误:

GNUmakefile:4: *** missing separator.  Stop.

我的生成文件规则有什么问题吗?请帮忙

规则中的每一行都需要用制表符缩进(没有空格(。您的缩进似乎混合在一起(尽管我无法从粘贴的代码中分辨出 100%(。

此外,您应该尽量不要在可以避免的地方混合 make 和 bash 语法。例如,你可以这样做。

在某些行的末尾可能还有一些额外的空格(我无法从这里分辨出来(,但请确保末端没有空格。

我会逐行重写它,从以下开始

$(DIR_REL64)/%: $(SHIFT_BINDIR64)/%
$(copy_file)

其中 $(copy_file( 是制表符缩进的。确保它有效,然后添加下一位。

最新更新