2009-07-14 6 views
3

Ich habe eine statische Bibliothek nach this link erstellt.Implementieren von statischen Bibliotheken in iPhone

Aber ich habe Probleme mit der Verwendung der Bibliothek. Als Referenz für die Verwendung von statischen Bibliotheken in einem iPhone-Projekt folgte ich this link.

Aber ich kämpfe immer noch mit der "Wie statische Bibliotheken in einem anderen iPhone-Projekt zu implementieren?" Frage.

Danke euch allen.

+0

Was ist das Problem, das Sie haben? – teabot

+0

Dies ist ein generelles Xcode-Problem, nicht nur das iPhone. Ich würde es mindestens mit "xcode" speichern. – IlDan

Antwort

5

Sie können die projektübergreifende Referenzierung wie in den Posts verwenden, aber dies hat mehrere Abschwünge.

Ich benutze diese Einrichtung, die auf Xcode im Allgemeinen funktioniert (nicht nur für das iPhone) und fügt Versionskontrolle der statischen Bibliothek der Kompilierungszeit hinzu.

Ich legte meine statischen Bibliotheken in ~/Library/MyLibraries /, das .a-Archiv zusammen mit ihren öffentlichen Headern. Auf diese Weise können Sie verschiedene Versionen von ihnen haben:

~/Library/MyLibraries/ 
        /MyLib-1.0.0/Headers/header1.h 
             /header2.h 
           /libmylib.a 
           /libmylib_debug.a 
        /MyOtherLib-2.1.0/Headers/... 
             /libmyotherlib.a 

dann in Xcode Einstellungen hinzufügen, die Benutzervariablen:

LIBRARIES_DIR  $(USER_LIBRARY_DIR)/MyLibraries 
MYLIBRARY_LIBROOT $(LIBRARIES_DIR)/MyLib-1.0.0 

und ändern Sie die Einstellungen

HEADER_SEARCH_PATHS $(MYLIBRARY_LIBROOT)/Headers 
OTHER_LDFLAGS  $(MYLIBRARY_LIBROOT)/libmylib.a 

Jetzt MYLIBRARY_LIBROOT ändern Sie zu wählen Bibliotheksversion. Mehr dazu blog post von mir.

Wenn Sie es einfach halten wollen, dann kompilieren Sie einfach die Bibliothek und richten Sie HEADER_SEARCH_PATHS und OTHER_LDFLAGS ein.

+0

Der Nachteil dieses Ansatzes (der je nach Ihren Anforderungen von Vorteil sein kann) besteht darin, dass die statische Bibliothek beim Kompilieren der Projekte, die sie verwenden, nicht automatisch neu kompiliert wird. – Felixyz

+0

Sicherlich. Aber Sie möchten Ihre Bibliothek separat entwickeln, debuggen und testen, das ist der Sinn einer echten Bibliothek. Du wirst sowieso bald nicht mehr synchron sein ...;) – IlDan

Verwandte Themen