objective-c - 目标模式不包含 '%' 。生成文件

标签 objective-c macos binding xamarin.ios makefile

我已经在 google 中搜索了这个问题,但仍然没有解决问题的方法。我有 2 个 Makefile:一个作为示例,一个作为我的文件。 示例:

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

最佳答案

这是一条来自 Make 的错误信息。这意味着“您的文件名之一有一个可以作为正则表达式一部分的字符”。 Make 对文件系统和引用非常天真。它不相信:

foo:  'The bar.'

指的是文字字符串。它以 The 为一个词,以 bar. 为另一个词,然后在句点上呕吐。改为这样做:

foo:  The\ bar\.

或者在您的情况下,反斜杠到 .xcodeproj 中的句点。

关于objective-c - 目标模式不包含 '%' 。生成文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15113138/

相关文章:

ios - UITableViewCell 抛出异常

macos - 带 https 和 TLS 1.1 的 NSURLConnection

objective-c - 如何填充数组并同时查看其数据 - Swift - IOS9

ios - 如何绘制波形?

c++ - SDL 图像渲染困难

WPF 绑定(bind)到 Window 属性失败

WPF/XAML 在具有数据绑定(bind)和高级模板的 TreeView 中使用 TreeViewItems

c - 使用 tolua++ 绑定(bind)结构和 ctor/dtor

ios - 一种改变 NSMutableDictionaries 数组的更快方法

macos - MAC OS 在强制退出应用程序之前要求输入密码