33

この問題を Google で検索しましたが、まだ問題を解決する方法がありません。私は 2 つの Makefile を持っています: 1 つは例として、もう 1 つは私のファイルです。 例:

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
4

8 に答える 8

48

これは Make からの不適切なエラー メッセージです。これは、「ファイル名の 1 つに、正規表現の一部である可能性のある文字が含まれていた」ことを意味します。Makeは、ファイルシステムと引用について非常に素朴です。それは信じていません:

foo:  'The bar.'

リテラル文字列を参照します。それはThe、1 つの単語bar.として、別の単語として取り、ピリオドでバーフします。代わりにこれを行います:

foo:  The\ bar\.

または、あなたの場合は、のピリオドにバックスラッシュを付けます.xcodeproj

于 2014-06-27T22:44:41.760 に答える
37

これはうまくいきません:

default:
        echo "Hello world!"

この意志:

default:
	echo "Hello world!"

違いがわかりますか?

そうです、最初のものにはスペースがあり、2番目のものにはタブがあります。スペースのあるものはあなたに与えるでしょう:

Makefile:2: *** セパレータがありません。止まる。

そして、これが私たちが素敵なものを手に入れることができない理由です...

于 2017-10-19T07:58:43.083 に答える
15

フォームのルールがあったため、このエラーが発生しました

foo: bar:
        baz

(末尾に注意してください:)。

于 2017-09-10T01:13:30.653 に答える
-4

11行目をhttps://github.com/mkovalyk/IIViewDeckControllerBinding/blob/master/src/binding/Makefileにドロップします。%'makeによって認識されません

于 2013-02-28T08:37:47.920 に答える