这是我的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( 是制表符缩进的。确保它有效,然后添加下一位。