J'ai cherché ce problème dans google, mais je n'ai toujours aucun moyen de résoudre un problème. J'ai 2 Makefiles: un comme exemple et un comme fichier. Exemple:
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
Mon fichier:
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
Avec l'exemple de fichier, tout va bien, avec le mien, j'ai l'erreur:
Makefile:4: *** target pattern contains no `%'. Stop.
make: *** [all] Error 2
C'est un message d'erreur mal écrit de Make. Cela signifie "l'un de vos noms de fichier avait un caractère qui pourrait faire partie d'une expression régulière". Make est très naïf à propos des systèmes de fichiers et des citations. Il ne croit pas que:
foo: 'The bar.'
fait référence à une chaîne littérale. Il faut The
comme un mot, bar.
comme un autre mot, puis des barfs sur la période. Faites ceci à la place:
foo: The\ bar\.
ou dans votre cas, barre oblique inverse à la période dans .xcodeproj
.
Cela ne fonctionnera pas:
default:
echo "Hello world!"
Cette volonté:
default:
echo "Hello world!"
Pouvez-vous repérer la différence?
C'est vrai, le premier a des espaces, le second a des onglets . Celui avec des espaces vous donnera:
Makefile: 2: *** séparateur manquant. Arrêtez.
Et c'est pourquoi nous ne pouvons pas avoir de belles choses ...
Cette erreur est survenue parce que j'avais une règle de la forme
foo: bar:
baz
(notez le :
de fin).
Assurez-vous qu'il n'y a pas de :
dans votre chemin, c'est-à-dire cd ${url} => ://
. Si c'est le cas, échapper comme ça:
cd ${url} => \://
Résolu: , Allez simplement à l'onglet de projet qu'il présentera dans la section d'onglets verticaux puis allez à général et changez simplement l'emplacement du projet