Ich versuche, Xcode zu verwenden, um eine Objective-C-Desktopanwendung zu erstellen, die mit einer statischen C ++ - Bibliothek verknüpft. Ich benutze den Apple Compiler. Ich erhalte den folgenden Linkerfehler:
%Vor%Es scheint, als ob es nicht gegen die C ++ - Standardbibliothek bindet. Ist das das Problem und wenn ja, wie kann ich dafür sorgen, dass es dagegen bindet?
Aktualisieren :
Wenn ich dem Build eine leere CPP-Datei hinzufüge, wird alles kompiliert und läuft gut. Ich brauche nur eine Möglichkeit, dem Linker mitzuteilen, dass er mit der C ++ - Standardbibliothek verlinkt. Ich habe versucht, alle Build-Einstellungen in Xcode durchzusehen, aber ich kann nichts finden, was hilft.
Es scheint komisch, dass libcore.a
im Namensraum Init
nach einer Klasse namens std::ios_base
sucht. Ich glaube nicht, dass std::ios_base::Init
eine Standardklasse ist.
Abgesehen davon sollten Sie überprüfen, ob libcore.a
tatsächlich x86_64
code enthält. Sie können den Befehl file
zum Überprüfen verwenden. Zum Beispiel:
Wenn die Ausgabe des Befehls file
keine Zeile " for architecture x86_64
" enthält, können Sie die Bibliothek nicht zum Erstellen einer ausführbaren 64-Bit-Datei verwenden.
Andere Linker-Flags -lstdc ++ Hat mir in Xcode5 nicht geholfen. Aber finde ähnliche Dinge in Apple LLVM 5.0 - Lnaguage - C ++
Standardeinstellung war libc ++ (LLVM C ++ Standard ~ blabla) und änderte es in libstdc ++ (GNU-Sache)
Jetzt gibt es keinen Fehler beim Verknüpfen !!! und jetzt muss ich herausfinden, dass es gut läuft.
trotzdem danke für den Rat.
Tags und Links c++ clang xcode linker static-libraries