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

问题描述 投票:0回答:1

这是我的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.

我的makefile规则有什么问题吗?请帮助

makefile gnu-make
1个回答
0
投票

规则中的每一行都必须用制表符缩进(没有空格)。您的缩进似乎很复杂(尽管我无法从粘贴的代码中看出100%)。

此外,您应尽量避免在可能的地方混用make和bash语法。例如,您可以做。

[某些行的末尾可能还有一些多余的空格(我不能从这里告诉),但是请确保末尾没有空白。

我将从以下一行开始逐行重写它:

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

$(copy_file)缩进制表符的位置。确保可以使用,然后添加下一位。

© www.soinside.com 2019 - 2024. All rights reserved.