目标模式不包含“%”。 Makefile文件(Target pattern contains n

2019-07-20 14:55发布

我已经在谷歌搜索这个问题,但还没有一些方法来解决问题。 我有2所生成文件:作为一个例子,一个是我的文件。 例:

BINDDIR=/src/binding
XBUILD=/Applications/Xcode.app/Contents/Developer/usr/bin/xcodebuild
PROJECT_ROOT=XMBindingLibrarySample
PROJECT=$(PROJECT_ROOT)/XMBindingLibrarySample.xcodeproj
TARGET=XMBindingLibrarySample
BTOUCH=/Developer/MonoTouch/usr/bin/btouch

 XMBindingLibrary.dll
libXMBindingLibrarySample-i386.a:
$(XBUILD) -project $(PROJECT) -target $(TARGET) -sdk iphonesimulator -configuration Release clean build -mv $(PROJECT_ROOT)/build/Release-iphonesimulator/lib$(TARGET).a $@
libXMBindingLibrarySample-armv6.a:
$(XBUILD) -project $(PROJECT) -target $(TARGET) -sdk iphoneos -arch armv6 -configuration Release clean      build -mv $(PROJECT_ROOT)/build/Release-iphoneos/lib$(TARGET).a $@

libXMBindingLibrarySample-armv7.a:
$(XBUILD) -project $(PROJECT) -target $(TARGET) -sdk iphoneos -arch armv7 -configuration Release clean build -mv $(PROJECT_ROOT)/build/Release-iphoneos/lib$(TARGET).a $@

libXMBindingLibrarySampleUniversal.a: libXMBindingLibrarySample-armv7.a libXMBindingLibrarySample-i386.a
lipo -create -output $@ $^

XMBindingLibrary.dll: AssemblyInfo.cs XMBindingLibrarySample.cs extras.cs libXMBindingLibrarySampleUniversal.a

$(BTOUCH) -unsafe --outdir=tmp -out:$@ XMBindingLibrarySample.cs -x=AssemblyInfo.cs -x=extras.cs --link-with=libXMBindingLibrarySampleUniversal.a,libXMBindingLibrarySampleUniversal.a

clean:
-rm -f *.a *.dll

我的文件:

BTOUCH=/Developer/MonoTouch/usr/bin/btouch
BINDDIR=/src/binding
XBUILD=/Applications/Xcode.app/Contents/Developer/usr/bin/xcodebuild
PROJECT_ROOT=IIViewDeckControllerSample
PROJECT=$(PROJECT_ROOT)/IIViewDeckController.xcodeproj
TARGET=IIViewDeckController

all: IIViewDeckController.dll

libIIViewDeckController-i386.a:
$(XBUILD) -project $(PROJECT) -target $(TARGET) -sdk iphonesimulator -configuration Release clean build -mv $(PROJECT_ROOT)/build/Release-iphonesimulator/lib$(TARGET).a $@

libIIViewDeckController-armv7.a:
$(XBUILD) -project $(PROJECT) -target $(TARGET) -sdk iphoneos -arch armv7 -configuration Release clean build  -mv $(PROJECT_ROOT)/build/Release-iphoneos/lib$(TARGET).a $@

libIIViewDeckControllerUniversal.a: libIIViewDeckController-armv7.a libIIViewDeckController-i386.a
lipo -create -output $@ $^

IIViewDeckController.dll: AssemblyInfo.cs APIDefinition.cs StructsAndEnums.cs libIIViewDeckControllerUniversal.a
$(BTOUCH) -unsafe  -out:$@ APIDefinition.cs -x=AssemblyInfo.cs -x=StructsAndEnums.cs --link-with=libIIViewDeckControllerUniversal.a,libIIViewDeckControllerUniversal.a

clean:
-rm -f *.a *.dll

随着例如文件一切正常,与我我有错误:

Makefile:4: *** target pattern contains no `%'.  Stop.
make: *** [all] Error 2

Answer 1:

这是做一个写的不好的错误消息。 它的意思是“你的文件名的人有可能是正则表达式的一部分的字符”。 ,是关于文件系统和报价很天真。 它不认为:

foo:  'The bar.'

指的是一个字符串。 它需要The是一个词, bar. 作为另一个词,然后barfs的时期。 做到这一点,而不是:

foo:  The\ bar\.

或者在你的情况下,反斜杠在此期间.xcodeproj



Answer 2:

这将无法正常工作:

 default: echo "Hello world!" 

这将:

 default: echo "Hello world!" 

您看得出来差别吗?

这是正确的, 第一个有空格,第二个有标签 。 与空间的人会给你:

Makefile文件:2:***遗漏分隔符。 停止。

这就是为什么我们不能有好东西...



Answer 3:

出现此错误对我来说,因为我有以下形式的规则

foo: bar:
        baz

(注意结尾的: )。



Answer 4:

确保不存在:在你的路径,即cd ${url} => :// 。 如果是这样,逃避它是这样的:

cd ${url} => \://


Answer 5:

解决:只要进入该项目标签中,将提交一份关于垂直标签部分则去一般,只是改变项目的位置



Answer 6:

删除就行了11 https://github.com/mkovalyk/IIViewDeckControllerBinding/blob/master/src/binding/Makefile 。 %'不被认可化妆



文章来源: Target pattern contains no '%'. Makefile