2013-10-28 4 views
10

ich cocos2d-iphone mit (entwickeln-v2) und Xcode 5 und haben diesen Fehler bei dem Versuch, meine App zu archivieren: (und nicht, wenn ich es kompilieren)Fehler, wenn ein Archiv meiner cocos2d App Erstellen

libs/kazmath/src/neon_matrix_impl.c:64:15:

error: unknown register name 'q0' in asm 
     : "memory", "q0", "q1", "q2", "q3", "q8", "q9", "q10", "q11", "q12", "q13", "q14", "q15" //clobber 
        ^
libs/kazmath/src/neon_matrix_impl.c:93:15: error: unknown register name 'q0' in asm 
     : "memory", "q0", "q1", "q8", "q9", "q10", "q11" //clobber 
        ^
2 errors generated. 

Wie behebt man das?

+0

Zeigen Sie den Code an, den Sie zum Erstellen des Archivs verwenden. – LearnCocos2D

+0

Ich habe ein Problem hier geöffnet: http://code.google.com/p/cocos2d-iphone/issues/detail?id=1507&can=1&q=franck4321&colspec=ID%20Type%20Status%20Priority%20Milestone%20Component%20Owner%20Summary – franck

Antwort

34

Ich hatte zu ersetzen:

#if defined(__ARM_NEON__) 

von:

#if defined(_ARM_ARCH_7) 

in der neon_matrix_impl.c Datei.

+0

update: vielleicht ist es weniger tollpatschig, es in mat4.c zu reparieren und einfach das ifdef und den Code zu entfernen, der den Aufruf von NEON_Matrix4Mul auslöst. in der kmMat4Multiply-Funktion – franck

+0

Das hat mich gerettet! Ich habe seit fast einem Monat nach einer Lösung gesucht! –

+7

Sie müssen ARM_NEON in ARMARCH_7 in zwei Dateien ändern, neon_matrix_impl.c und mat4.c. 64-Bit sollte danach gut funktionieren. – suku

8

Dies ist der Fehler in kazmath, wenn Sie gerade erst in neon_matrix_impl.c ändern

Undefined symbols for architecture arm64:
"_NEON_Matrix4Mul", referenced from:
_kmMat4Multiply in libcocos2d-library.a(mat4.o)
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Antwort:

Sie haben in zwei Dateien, neon_matrix_impl.c und mat4.c ARM_NEON zu ARMARCH_7 ändern . 64-Bit sollte danach gut funktionieren.

+0

Es würde helfen, wenn Sie Ihre Antwort so formatierten, dass der Code die richtigen Zeilenumbrüche hatte. – Teepeemm