Ich habe bisher Folgendes getan:
CodeSense und Autocomplete-Arbeit. Aber das wird nicht kompiliert. Ungefähr 70 Linker-Fehler tauchen auf, wenn ich versuche zu bauen, alle sagen etwas wie:
Nicht definierte Symbole für Architektur armv7: "_OBJC_CLASS _ $ _ CCDirector", referenziert von: objc-class-ref in AppDelegate.o objc-class-ref in ViewController.o "_kEAGLColorFormatRGB565", referenziert von: - [RIAppDelegate applicationDidFinishLaunching:] in AppDelegate.o "_OBJC_CLASS _ $ _ CCTexture2D", referenziert von: objc-class-ref in AppDelegate.o "_OBJC_CLASS _ $ _ EAGLView", referenziert von: objc-class-ref in AppDelegate.o
Wenn ich versuche, für den Simulator zu bauen, sagt es statt armv7, dass die Symbole für i386 fehlen. Das cocos2d-Projekt selbst kompiliert & amp; baut gut. Es ist mein Projekt, das die oben genannten Fehler aufweist.
Die cocos2d-Bibliothek ist im Build-Verzeichnis meiner App vorhanden, nachdem ich versucht habe, sie zu erstellen.
EDIT: Vergessen zu erwähnen. Ich habe auch das Schema für mein Projekt bearbeitet, um nicht parallel zu bauen. Ich fügte auch das cocos2d Ziel hinzu und machte es zum Anfang der Liste (also sollte es zuerst bauen).
EDIT: Zur Verdeutlichung - nachdem die Änderungen an der Datei pbxproj wie oben beschrieben vorgenommen wurden, ist die Datei libcocos2d.a nicht mehr rot. Es sieht normal aus. Auch meine App ist auch gebaut, obwohl es die Link-Fehler gibt und der Build fehlschlägt. (Es wird nicht tatsächlich erstellt, aber das Produkt ist nicht "rot". Eine Anwendungsdatei wird am selben Speicherort erstellt, an dem auch die cocos2d-Bibliothek erstellt wird.
Ich habe schon seit einiger Zeit versucht, Cocos2d als statische Bibliothek anstelle einer Vorlage zu verwenden. Der Grund dafür ist, dass es mir erleichtert, mein Projekt modular zu entwickeln. Außerdem erleichtert es den Wechsel zwischen cocos2d-Versionen und so weiter. Nach dem Durchsuchen der cocos2d-x-Foren habe ich diesen Link gefunden: Ссылка
Ich habe die Frameworks gefunden, die ich hinzufügen musste, und das hat alle Verbindungsprobleme gelöst.
Ich habe noch immer keine Bewerbung an den Laden geschickt, also wenn jemand mit mehr Erfahrung es überprüfen könnte, ob es irgendwelche Fehler / Fehler gibt, wäre es großartig. Englisch ist eine zweite Sprache für mich, also bitte nichts dagegen. Dies wurde mit cocos2d1.1beta2 und Xcode 4.3.1 gemacht.
Fügen Sie den Speicherort Ihres cocos2d-Ordners zu "Suchpfaden für Benutzerheader" hinzu. Wenn Sie möchten, können Sie stattdessen den Ordner cocos2d zu Ihrer Liste der Quellbäume in Xcode hinzufügen und stattdessen einfach den Namen der Variablen hier eingeben. ZB: $ {COCOS2D_SRC}. Dies ist nützlich, wenn Sie später die Ordnerstruktur der Build-Umgebung ändern möchten.
Klicken Sie auf das Ziel und wählen Sie die Registerkarte Build-Phasen. Sie möchten die folgenden Binärdateien mit Ihrer Bibliothek verknüpfen. Stellen Sie sicher, dass sie da sind. libcocos2d.a libz.dylib libxml2.dylib OpenGLES.framework QuartzCore.Framework UIKit.Framework Foundation.Framework CoreGraphics.framework
Wenn libcocos2d.a "rot" ist, machen Sie sich keine Sorgen. Es kompiliert immer noch / Links richtig.
Andernfalls können Sie eine Fehlermeldung erhalten, wenn Sie die Datei /Users/Pteriedaktyl/Library/Developer/Xcode/DerivedData/Build/Products/Debug-iphoneos/libcocos2d.a ignorieren. Die Datei wurde für das Archiv erstellt, das nicht mit der Architektur verknüpft ist (armv6 )
Jetzt sind Sie fertig! Sie sollten auf die cocos2d-API vom Geschwisterprojekt zugreifen können. Wenn Sie Ihre Version von cocos2d ändern möchten, müssen Sie nur das cocos2d-Projekt im Arbeitsbereich ändern, den Pfad der Quellstruktur aktualisieren (falls erforderlich) und eine Verknüpfung zur neuen libCocos2d.a
herstellenTesten: Um es einfach auszuprobieren, habe ich den App-Delegaten modifiziert und den Controller-Code so angezeigt, dass er mit dem Code aus einem meiner alten Hello World-Projekte übereinstimmt.
Bitte probieren Sie es aus und fügen Sie es zu dem Thread hinzu, wenn Sie irgendwelche Probleme haben.
Scrollen Sie im Bereich Dienstprogramme für libCocos2d.a unterhalb der Identität und des Typs, in dem Sie die Bibliothek relativ zu Produkten erstellen, nach unten und stellen Sie sicher, dass die Zielmitgliedschaft für Ihre Ziele ausgewählt ist. Wenn dies nicht der Fall ist, wird es nicht in den tatsächlichen Build des Ziels aufgenommen. Zumindest war das die einzige Möglichkeit, dieses Problem zu reproduzieren.
Tags und Links ios cocos2d-iphone xcode4 static-linking static-libraries