首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >目标模式不包含'%‘。Makefile

目标模式不包含'%‘。Makefile
EN

Stack Overflow用户
提问于 2013-02-27 13:20:03
回答 7查看 78.3K关注 0票数 39

我在谷歌上搜索过这个问题,但仍然没有办法解决这个问题。我有两个Makefile:一个作为示例,一个作为我的文件。示例:

代码语言:javascript
复制
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

我的文件:

代码语言:javascript
复制
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

对于示例文件,一切都正常,而我的文件有错误:

代码语言:javascript
复制
Makefile:4: *** target pattern contains no `%'.  Stop.
make: *** [all] Error 2
EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2014-06-27 22:44:41

这是来自Make的错误消息。它的意思是“您的文件名中有一个字符可能是正则表达式的一部分”。Make对于文件系统和引用非常天真。它不相信:

代码语言:javascript
复制
foo:  'The bar.'

引用文字字符串。它将The作为一个单词,bar.作为另一个单词,然后在句点上进行操作。取而代之的是这样做:

代码语言:javascript
复制
foo:  The\ bar\.

或者在您的例子中,反斜杠到.xcodeproj中的句点。

票数 52
EN

Stack Overflow用户

发布于 2017-09-10 01:13:30

这个错误发生在我身上,因为我有一个表单规则。

代码语言:javascript
复制
foo: bar:
        baz

(注意后面的:)。

票数 17
EN

Stack Overflow用户

发布于 2018-10-05 19:03:11

确保您的路径中没有:,即cd ${url} => ://。如果是这样的话,就这样逃避吧:

代码语言:javascript
复制
cd ${url} => \://
票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15113138

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档