Я загружаю новейший Xcode от Apple, но обнаружил, что не могу выполнить поиск в библиотеке с именем «libstdc ++ 6.0.9».
Xcode 10 (iOS 12) не содержит libstdc ++ 6.0.9
Ответы (14)
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 ++.
Вы можете скопировать его из старого 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/
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)
Xcode 10 отменяет библиотеку libstdc ++ со встроенной библиотекой, поэтому мы должны скопировать файл в библиотеку вручную.
скопируйте файл: (libstdc ++. 6.0.9.tbd) и (libstdc ++. 6.tbd) в:
/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
(Обратите внимание на различие «iPhoneOS» и «iPhoneSimulator»)
очистите xcode и перестройте его.
Вот файл.
dylib
файл. Они должны быть расположены в Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/usr/lib/
- person khcpietro; 26.03.2019
Взято из примечаний к выпуску 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 ++.
Я столкнулся с той же проблемой после обновления до xcode 10. Я решил эту проблему, загрузив libstdc ++. 6.0.9.tbd и libstdc ++. 6.tbd с сайта https://github.com/Kila2/libstdc-.6.0.9.tbd.
затем я скопировал эти файлы в папку своего проекта. После этого я добавил эти библиотеки в Linked Frameworks и Libraries, выполнив следующие действия: Project> Target> General> Linked Frameworks and Libraries нажмите (+)> Нажмите «Add Other»> Перейдите в папку вашего проекта в «Open File» и выберите их. библиотеки и доп.
Теперь запустите проект, он будет работать отлично.
Поскольку Apple удаляет libstdc ++ в Xcode 10.0, поэтому, если вы хотите решить проблему, вы можете попробовать вручную скопировать файл в lib.
1.iPhoneOS
и iPhoneSimulator
файл
скопируйте файлы: libstdc++.6.0.9.tbd
, libstdc++.6.tbd
и libstdc++.tbd
в:
/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
файл
скопируйте файлы: libstdc++.6.0.9.dylib
, libstdc++.6.dylib
и libstdc++.dylib
в:
- /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/usr/lib
/usr/lib/libstdc++.6.dylib: mach-o, but not built for iOS simulator
можно попробовать скопировать исходный файл: libstdc++.6.0.9.dylib
, libstdc++.6.dylib
и libstdc++.dylib
в: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/usr/lib
- person RamboLu; 12.10.2018
Для меня -l "stdc ++. 6" был добавлен во время pod install
. Я нашел его в 'Pods / Target \ Support \ Files / Pods-SomeTarget / Pods-SomeTarget.debug.xcconfig'
Чтобы решить эту проблему, вы можете использовать обработчик post_install в Podfile:
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
Джереми Хаддлстон. Ответ Секвойи дал мне направление для решения этой проблемы. Поэтому, прежде чем продолжить, убедитесь, что вы прочитали его ответ.
Даже после обновления библиотеки C ++ в вашем проекте вы можете столкнуться с ошибкой связывания, когда Xcode не сможет связать ваш проект с этой libstdc ++ lib.
Решение - если в структуру вашего проекта включен libstdc ++, он мог стать красным, потому что Xcode не смог найти для него ссылку. Если вы удалите эту запись из структуры проекта и вместо этого добавите новую библиотеку (libc ++), все готово.
Скопируйте его из старого Xcode (9.4), он будет работать для физических устройств iOS. Для проблем Simulator с Did find: /usr/lib/libstdc++.6.dylib: mach-o, but not built for iOS simulator
. Похоже, Apple удалила поддержку совместимости для симулятора. Просто скачайте симулятор iOS 11.4, и его можно будет запускать на нем.
Для симулятора просто удалите libstdc ++. 6.0.9.tbd из связанных платформ и библиотек.
Мне удалось исправить проблему сборки, скопировав необходимые файлы из 9.4 в 10.1, как библиотеки платформы, так и среду выполнения. Но это решает только случаи с симулятором. Мое приложение все еще зависает при запуске (заставка) при запуске на физическом устройстве.
Это сработает. Не копируйте файлы .dylib из / usr / lib в simruntime.
Список файлов и путей для копирования из Xcode 9.4.1 в Xcode 10.2.1
А) Скопируйте файл: libstdc ++. 6.0.9.tbd и libstdc ++. 6.tbd и libstdc ++. Tbd
из> Xcode9_41 / Xcode9_41.app / Contents / Developer / Platforms / iPhoneSimulator.platform / Developer / SDKs / iPhoneSimulator.sdk / usr / lib
в> /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/lib
Б) Скопируйте файлы: libstdc ++. 6.0.9.dylib и libstdc ++. 6.dylib и libstdc ++. Dylib
из> Xcode9_41 / Xcode9_41.app / Contents / Developer / Platforms / iPhoneOS.platform / Developer / Library / CoreSimulator / Profiles / Runtimes / iOS.simruntime / Contents / Resources / RuntimeRoot / usr / lib
в> /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/usr/lib
libc++
вместоlibstdc++
- person Anbu.Karthik   schedule 05.06.2018libc++
у меня не работает,libstc++
тоже недоступен - person sgdesmet   schedule 05.06.2018