Mik*_*ike 15 macos binding makefile objective-c xamarin.ios
我在谷歌搜索过这个问题,但仍然没有办法解决问题.我有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
Run Code Online (Sandbox Code Playgroud)
我的档案:
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
Run Code Online (Sandbox Code Playgroud)
使用示例文件一切正常,我的错误:
Makefile:4: *** target pattern contains no `%'. Stop.
make: *** [all] Error 2
Run Code Online (Sandbox Code Playgroud)
Cha*_*iam 40
这是来自Make的错误编写的错误消息.这意味着"你的一个文件名中有一个字符可能是正则表达式的一部分".Make对于文件系统和引用非常天真.它不相信:
foo: 'The bar.'
Run Code Online (Sandbox Code Playgroud)
指文字字符串.它需要The一个词,bar.另一个词,然后是句号的barfs.改为:
foo: The\ bar\.
Run Code Online (Sandbox Code Playgroud)
或者在你的情况下,反斜杠到期间.xcodeproj.
Jer*_*oen 23
这不起作用:
default:
echo "Hello world!"
这将:
default:
echo "Hello world!"
您看得出来差别吗?
没错,第一个有空格,第二个有标签.带空格的那个会给你:
Makefile:2:***缺少分隔符.停止.
这就是我们不能拥有美好事物的原因......
确保:您的路径中没有,即cd ${url} => ://. 如果是这样,请像这样逃避它:
cd ${url} => \://
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
40229 次 |
| 最近记录: |