Xcode 10 (iOS 12) не содержит libstdc ++ 6.0.9 - PullRequest
0 голосов
/ 05 июня 2018

Я загружаю новейший Xcode от Apple, но обнаружил, что не могу найти библиотеку с именем "libstdc ++ 6.0.9".cant search libstdc++

Ответы [ 14 ]

0 голосов
/ 20 июня 2018

Взято из Замечания к выпуску Xcode 10 Beta 2 и применимо ко всем будущим версиям Xcode:

Сборка с libstdc ++ устарела с Xcode 8 и не поддерживается в Xcode 10при таргетинге на iOS.Проекты C ++ теперь должны перейти на libc ++, и рекомендуется установить цель развертывания iOS 7 или более поздней версии.Помимо изменения параметров сборки стандартной библиотеки C ++, разработчики должны проверять жестко закодированные флаги компоновщика и целевые зависимости, чтобы удалить ссылки на libstdc ++ (включая -lstdc ++, -lstdc ++. 6.0.9, libstdc ++. 6.0.9.tbd и libstdc ++. 6.0.9.dylib).Зависимости проекта, такие как статические архивы, созданные на основе libstdc ++, также должны быть перестроены на основе libc ++.(40885260)

Apple вряд ли когда-нибудь снова поддержит libstdc ++.

0 голосов
/ 07 июня 2018

libstdc ++ устарел 5 лет назад.Более поздние платформы Apple (tvOS и watchOS) не поддерживают ее.

Поддержка была удалена из среды выполнения iOS 12.0 Simulator, но она остается в среде выполнения iOS 12.0 (устройства) для двоичной совместимости с приложениями доставки.

Вы должны обновить свой проект для использования libc ++, а не libstdc ++, установив для параметра сборки CLANG_CXX_LIBRARY ("Стандартная библиотека C ++") значение libc ++.

Если у вас есть статические библиотеки, зависящие от libstdc ++. TbdВы можете обойти это сейчас, скопировав файл из SDK в Xcode 9.4 (и libstdc ++. *. dylib во время выполнения симулятора iOS), но это не является долгосрочным решением.Вам следует связаться с поставщиком этих библиотек и запросить версии, созданные с использованием libc ++.

0 голосов
/ 06 июня 2018

libstdc++ удалено в iOS 12.

Хотелось бы, чтобы в Твиттере был лучший источник, чем инженер Apple, но это все, что у меня есть.

@ jeremyhu PSA: libstdc ++ отсутствует в iOS 12.0 SDK (он присутствует во время выполнения для двоичной совместимости).Его дни также сочтены на macOS.Перейдите на libc ++, если вы еще этого не сделали.# WWDC2018 # cplusplus

Редактировать: Вот лучший источник, примечания к исправлению Xcode 10

Сборка с libstdc ++ была объявлена ​​устаревшей с Xcode 8и не поддерживается в Xcode 10 при ориентации на iOS.Проекты C ++ теперь должны перейти на libc ++, и рекомендуется установить цель развертывания iOS 7 или более поздней версии.Помимо изменения параметров сборки стандартной библиотеки C ++, разработчики должны проверять жестко закодированные флаги компоновщика и целевые зависимости, чтобы удалить ссылки на libstdc ++ (включая -lstdc ++, -lstdc ++. 6.0.9, libstdc ++. 6.0.9.tbd и libstdc ++. 6.0.9.dylib).Зависимости проекта, такие как статические архивы, созданные на основе libstdc ++, также должны быть перестроены на основе libc ++.(40885260)

0 голосов
/ 06 июня 2018

Вы можете скопировать его из старого Xcode (9.4).Это должно работать.

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/
...