Verknüpfen Sie iOS App sowohl mit libstdc ++ als auch mit libc ++

8

Anwendungsfall: Ich möchte eine statische Bibliothek von Drittanbietern verwenden, die libstdc ++ verwendet (kann nicht geändert werden), also muss ich meine Anwendung mit libstdc ++ verknüpfen. Wenn ich jetzt C ++ 11-Funktionen in meinem eigenen Code verwenden möchte, müsste ich libc ++ in Xcode auswählen und zusätzlich mit libstdc ++ verknüpfen, um die statische Bibliothek zu erfüllen.

Mein Problem ist, dass obwohl ich libc ++ in "Build settings" ausgewählt und "-lstdc ++" zu "Other linker flags" hinzugefügt habe (auch über "Build phases & gt; Link Binary mit Libraries"), bekomme ich linker Fehler für letzteres, das heißt für libstdc ++ Funktionen / Klassen, die von der 3rd Party Lib referenziert werden.

Wie kann ich das Projekt so konfigurieren, dass es mit beiden C ++ - Standardbibliotheken verknüpft wird? Es sollte theoretisch möglich sein, da libc ++ in seinem eigenen Inline-Namespace std::__1 ist.

    
AndiDog 25.03.2013, 12:48
quelle

1 Antwort

10

Ich bin gerade auf dieses Problem gestoßen, und meine Lösung war, dass Sie -lstdc++ auf die anderen Flags setzen, dass Sie /usr/lib/libstdc++.dylib einfügen.

Mein Vorzug ist, dass, wenn xcode / clang -std=c++ gesetzt hat, die ältere .dylib explizit geladen werden muss.

    
SonicBison 30.08.2013 15:46
quelle

Tags und Links