Ich schreibe eine statische Bibliothek für das iPhone und ich frage mich, ob das, was ich tue, empfohlen wird oder ob ich einen anderen Ansatz wählen sollte.Korrekter Weg, um Bibliotheken aus Bibliotheken für das iPhone/CocoaTouch zu verknüpfen
Die statische Bibliothek, die ich schreibe, ist abhängig von libxml2. libxml2 hat eine dynamische Bibliothek (dylib) und eine statische Bibliothek (a). Ich habe zwei Ansätze ausprobiert.
Ansatz ein - Wenn ich gegen die statische Bibliothek zu verknüpfen versuchen, durch „-lxml2“ auf „Andere Linker-Flags“ die Erstellung fehl mit der folgenden Meldung hinzufügen:
/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/libtool: file: -lxml2 is not an object file (not allowed in a library)
Ansatz zwei - kann ich erfolgreich verknüpfen gegen die dynamische Bibliothek von meiner statischen Bibliothek, aber ich bin nicht sicher, ob dies (oder der richtige Ansatz) auf dem iPhone erlaubt ist. Obwohl Apple eine statische Bibliothek erstellt, erlaubt Apple statische Bibliotheken, die mit dynamischen Bibliotheken verknüpft sind? Ich lerne immer noch über statische Bibliotheken, aber nach meinem Verständnis würde der Code von der Dylib mit meinem Code kombiniert werden, um eine Bibliothek zu erstellen, daher sollte die Verknüpfung mit der Dylib kein Problem darstellen.
Fassen wir zusammen: [? Baut, aber ist das richtig und akzeptabel]
- mylibrary.a - -> libxml2.a [Funktioniert nicht]
- mylibrary.a> libxml2.dylib
Eigentlich erlaubt XCode das ganz gut. Mehr im Abstrakten sollte StackOverflow jedoch ein Ort sein, an dem Sie schnell und einfach * die richtige * Antwort finden! Wenn Sie nicht wissen, oder Sie nicht sicher sind, bitte posten Sie nicht als Antwort. Stellen Sie in Fragen Klärungsfragen, oder recherchieren Sie, bis Sie die richtige Antwort * wissen *! :) – Olie