webentwicklung-frage-antwort-db.com.de

Xcode 10 (iOS 12) enthält nicht libstdc ++ 6.0.9

Ich lade den neuesten Xcode von Apple herunter, aber ich habe festgestellt, dass ich die Bibliothek mit dem Namen "libstdc ++ 6.0.9" nicht durchsuchen kann  cant search libstdc++

38
CoderAzreal

libstdc ++ wurde vor 5 Jahren nicht mehr unterstützt. Apples neuere Plattformen (tvOS und watchOS) unterstützen dies nicht.

Die Unterstützung wurde aus der Simulator-Laufzeitumgebung für iOS 12.0 entfernt. Die Laufzeitumgebung für iOS 12.0 (Geräte) bleibt jedoch aus Gründen der binären Kompatibilität mit Versand-Apps erhalten.

Sie sollten Ihr Projekt für die Verwendung von libc ++ anstelle von libstdc ++ aktualisieren, indem Sie die Build-Einstellung CLANG_CXX_LIBRARY ("C++ - Standardbibliothek") auf libc ++ setzen.

Wenn Sie über statische Bibliotheken verfügen, die von libstdc ++. Tbd abhängen, können Sie dies vorläufig umgehen, indem Sie die Datei aus den SDKs in Xcode 9.4 (und libstdc ++. *. Dylib in der Laufzeitumgebung des iOS-Simulators) kopieren Lösung. Sie sollten sich an den Anbieter dieser Bibliotheken wenden und mit libc ++ erstellte Versionen anfordern.

Sie können es aus dem alten Xcode (9.4) kopieren. Es sollte funktionieren.

cp /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/lib/libstdc++.* /Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/lib/

cp /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/usr/lib/libstdc++.* /Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/usr/lib/
19
Antigp

libstdc++ wird in iOS 12 entfernt.

Ich wünschte, ich hätte eine bessere Quelle als ein Apple-Ingenieur bei Twitter, aber das ist alles, was ich habe.

@jeremyhuPSA: libstdc ++ ist vom iOS 12.0 SDK verschwunden (es ist in der Laufzeit für binäre Kompatibilität vorhanden). Auf macOS sind auch die Tage gezählt. Migrieren Sie zu libc ++, wenn Sie dies nicht bereits getan haben. # WWDC2018 #cplusplus

Edit: Hier ist eine bessere Quelle, Xcode 10-Patchnotizen

Das Bauen mit libstdc ++ wurde mit Xcode 8 nicht mehr unterstützt und wird in Xcode 10 nicht unterstützt, wenn iOS als Ziel ausgewählt wird. C++ - Projekte müssen jetzt zu libc ++ migriert werden und es wird empfohlen, ein Implementierungsziel von iOS 7 oder höher festzulegen. Neben der Änderung der Build-Einstellung für die C++ - Standardbibliothek sollten Entwickler hartcodierte Linkerflags und Zielabhängigkeiten prüfen, um Verweise auf libstdc ++ (einschließlich -lstdc ++, -lstdc ++. 6.0.9, libstdc ++. 6.0.9.tbd und libstdc ++. 6.0) zu entfernen. 9. dylib). Projektabhängigkeiten wie statische Archive, die für libstdc ++ erstellt wurden, müssen auch für libc ++ neu erstellt werden. (40885260)

15
Oscar Apeland

Aus Xcode 10 Beta 2 Versionshinweise und anwendbar auf alle zukünftigen Versionen von Xcode:

Das Erstellen mit libstdc ++ wurde mit Xcode 8 nicht mehr unterstützt und wird in Xcode 10 nicht unterstützt, wenn Targeting für iOS. C++ - Projekte müssen jetzt nach libc ++ migrieren und es wird empfohlen, eine .__ festzulegen. Implementierungsziel von iOS 7 oder höher. Neben dem Ändern der Build-Einstellung für die C++ - Standardbibliothek wurde Entwickler sollten hartcodierte Linker-Flags und Zielabhängigkeiten überprüfen, um die Referenzen zu entfernen zu libstdc ++ (einschließlich -lstdc ++, -lstdc ++. 6.0.9, libstdc ++. 6.0.9.tbd und libstdc ++. 6.0.9.dylib) . Projektabhängigkeiten wie statische Archive, die für libstdc ++ erstellt wurden, müssen ebenfalls gegen libc ++ neu aufgebaut werden. (40885260)

Es ist unwahrscheinlich, dass Apple libstdc ++ jemals wieder unterstützt.

8
Cœur

Xcode 10 bricht die libstdc ++ - Bibliothek mit der integrierten Bibliothek .__ ab. Daher sollten Sie die Datei von Hand in die Bibliothek kopieren.

kopieren Sie die Datei: (libstdc ++. 6.0.9.tbd) und (libstdc ++. 6.tbd) nach:

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/lib

und

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/usr/lib 

(Bitte beachten Sie die Unterscheidung "iPhoneOS" und "iPhoneSimulator")

xcode reinigen und neu aufbauen.

Hier ist die Datei.

8
刘俊利

Ich habe das gleiche Problem nach der Aktualisierung auf Xcode 10 erlebt. Ich habe dieses Problem durch Herunterladen von libstdc ++. 6.0.9.tbd und libstdc ++. 6.tbd von https://github.com/Kila2/libstdc- behoben. 6.0.9.tbd .

dann kopierte ich diese Dateien in meinen Projektordner . Danach fügte ich diese Bibliotheken in Linked Frameworks und Bibliotheken hinzu, indem Sie die folgenden Schritte ausführen: Projekt> Ziel> Allgemein> Verknüpfte Frameworks und Bibliotheken Klicken Sie auf (+)> Klicken Sie auf "Hinzufügen" Andere '> Navigieren Sie zu Ihrem Projektordner unter' Datei öffnen ', wählen Sie diese Bibliotheken aus und fügen Sie sie hinzu.

Führen Sie nun das Projekt aus, es läuft perfekt ..

3
Tahir Pasha

Für mich wurde -l "stdc ++. 6" während pod install.__ hinzugefügt. Ich habe es in "Pods/Target\Support\Files/Pods-SomeTarget/Pods-SomeTarget.debug.xcconfig" gefunden

Um das Problem zu beheben, können Sie den post_install-Handler in Podfile verwenden: 

post_install do |installer|
    installer.pods_project.targets.each do |target|
        if target.name == "Pods-SomeTarget”
            puts "Updating #{target.name} OTHER_LDFLAGS"
            target.build_configurations.each do |config|
                xcconfig_path = config.base_configuration_reference.real_path
                xcconfig = File.read(xcconfig_path)
                new_xcconfig = xcconfig.gsub('-l"stdc++.6" ', '')
                File.open(xcconfig_path, "w") { |file| file << new_xcconfig }
            end
        end
    end
end
2

Die Antwort von Jeremy Huddleston Sequoia gab mir die Anweisung, dieses Problem zu lösen. Bevor Sie weitermachen, stellen Sie sicher, dass Sie seine Antwort gelesen haben.

Selbst nach dem Aktualisieren der C++ - Bibliothek in Ihrem Projekt kann ein Verknüpfungsfehler auftreten, bei dem Xcode Ihr Projekt nicht mit dieser libstdc ++ -Lib verknüpfen kann. 

Die Lösung lautet: Wenn in Ihrer Projektstruktur libstdc ++ enthalten ist, wurde sie möglicherweise rot, weil Xcode die Referenz dafür nicht finden konnte. Wenn Sie diesen Eintrag aus der Projektstruktur entfernen und stattdessen die neue lib (libc ++) hinzufügen, können Sie loslegen.

1
Anup

Da Apple libstdc ++ in Xcode 10.0 entfernt, können Sie versuchen, die Datei manuell in lib zu kopieren, wenn Sie das Problem lösen möchten.

1 .iPhoneOS und iPhoneSimulator Datei

kopiere die Datei: libstdc++.6.0.9.tbd und libstdc++.6.tbd und libstdc++.tbd nach:

  • /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/lib/

  • /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/usr/lib/

2 .iOS.simruntime datei

kopiere die Datei: libstdc++.6.0.9.dylib und libstdc++.6.dylib und libstdc++.dylib nach: 

  • /Anwendungen/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/usr/lib
1
RamboLu

Entfernen Sie für Simulator einfach libstdc ++. 6.0.9.tbd aus denLinked Frameworks und Bibliotheken.

0
tounaobun

Kopieren Sie es aus dem alten Xcode (9.4), wird es für physische iOS-Geräte funktionieren. Für Simulatorprobleme mit Did find: /usr/lib/libstdc++.6.dylib: mach-o, but not built for iOS simulator. Sieht aus, als hätte Apple die Kompatibilitätsunterstützung für den Simulator entfernt. Laden Sie einfach den iOS 11.4-Simulator herunter und er kann darauf ausgeführt werden.

0
Fan

Sie sollten libstdc ++ von anderen Linkerflags in Ihrem Xcode-Projekt entfernen

Überprüfen Sie dies :  enter image description here

0
iosMentalist

Das wird funktionieren. Kopieren Sie die .dylib-Dateien nicht von/usr/lib nach simruntime.

Liste der Dateien und Pfade, die von Xcode 9.4.1 nach Xcode 10.2.1 kopiert werden sollen

A) Kopieren Sie die Datei: libstdc ++. 6.0.9.tbd und libstdc ++. 6.tbd und libstdc ++. Tbd

von> Xcode9_41/Xcode9_41.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/usr/lib

zu> /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/lib

B) Kopieren Sie die Datei: libstdc ++. 6.0.9.dylib und libstdc ++. 6.dylib und libstdc ++. Dylib

von> Xcode9_41/Xcode9_41.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/CoreSimulator/Profile/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/usr/lib

zu> /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/usr/lib

0
Shane D

Ich konnte das Build-Problem beheben, indem ich die erforderlichen Dateien von 9.4 auf 10.1 (sowohl Plattform-Libs als auch Laufzeit) kopierte. Es löst aber nur die Fälle mit dem Simulator. Meine App bleibt beim Start (Startbildschirm) hängen, wenn sie auf einem physischen Gerät ausgeführt wird. 

0
Chen Wang