Bash Makefile错误-在查找匹配的“”时出现意外的EOF';
我的Makefile摘录如下:Bash Makefile错误-在查找匹配的“”时出现意外的EOF';,bash,makefile,cp,Bash,Makefile,Cp,我的Makefile摘录如下: .PHONY: product1 product2 product3 product1 product2 product3: $(MAKE) $(MAKEPRGFLAGS) -C $(LIBS_ROOT)/$@ cp -r `ls -A | grep ".*\.a$"` $(PROJECT_PATH)/lib/ $(PRODUCT_PATH)/ 编译完成后,当它试图复制.a文件时,会出现以下错误: /bin/sh:命令替换:第0行:查找时出现意外
.PHONY: product1 product2 product3
product1 product2 product3:
$(MAKE) $(MAKEPRGFLAGS) -C $(LIBS_ROOT)/$@
cp -r `ls -A | grep ".*\.a$"` $(PROJECT_PATH)/lib/ $(PRODUCT_PATH)/
编译完成后,当它试图复制.a
文件时,会出现以下错误:
/bin/sh:命令替换:第0行:查找时出现意外EOF
用于匹配“%”
/bin/sh:命令替换:第1行:语法错误:意外结束
文件
我已注意提供匹配的大括号。我的Makefile声明中有什么错误
我正在Windows中的cygwin上运行。从Notepad++编辑Makefiles,并将EOL转换为Windows格式。$在Makefiles中具有特殊意义。如果要在shell命令中使用它,必须将其加倍
product1 product2 product3:
$(MAKE) $(MAKEPRGFLAGS) -C $(LIBS_ROOT)/$@
cp -r `ls -A | grep ".*\.a$$"` $(PROJECT_PATH)/lib/ $(PRODUCT_PATH)/
但是,您不必使用ls
和grep
,只需将通配符赋给ls
:
cp -r *.a .*.a $(PROJECT_PATH)/lib/ $(PRODUCT_PATH)/
@gniourf_gniourf True。您可以启用
nullglob
以防止出现这种情况。如果两者都不匹配,则两种语法都无法正常工作。