Xcode 10 (iOS 12) не содержит libstdС++ 6.0.9

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

Ответы

Ответ 1

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

Ответ 2

Вы можете скопировать его из старого 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/

Ответ 3

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++ (включая -lstd C++, -lstd C++.6.0.9, libstdc++.6.0.9.tbd и libstdc++.6.0.9.dylib). Зависимости проекта, такие как статические архивы, созданные на основе libstdc++, также необходимо будет восстановить на основе libc++. (40885260)

Ответ 4

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 и восстановите его.

Вот файл.

Ответ 5

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

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

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

Ответ 6

Поскольку 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

Ответ 7

Я столкнулся с той же проблемой после обновления до xcode 10. Я решил эту проблему, загрузив libstdc++.6.0.9.tbd и libstdc++.6.tbd с https://github.com/Kila2/[ CN12].6.0.9.tbd.

Затем я скопировал эти файлы в папку моего проекта. После этого я добавил эти библиотеки в связанные фреймворки и библиотеки, выполнив следующие действия: "Проект"> "Цель"> "Основные"> "Связанные фреймворки и библиотеки", нажмите (+)> нажмите "Добавить другие"> "Перейти к папке проекта в" Открыть файл "и выберите эти библиотеки и доп.

Теперь запустите проект, он будет работать отлично..

Ответ 8

Для меня -l "stdc++.6" был добавлен во время pod install Я нашел его в разделе "Pods/Target\Support\Files/Pods-SomeTarget/Pods-SomeTarget.debug.xcconfig"

Чтобы решить эту проблему, вы можете использовать обработчик post_install в подпикселе:

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

Ответ 9

Ответ Джереми Хаддлстон Секвойя дал мне направление для решения этой проблемы. Поэтому, прежде чем идти вперед, убедитесь, что вы прочли его ответ.

Даже после обновления библиотеки C++ в вашем проекте может возникнуть ошибка связи, где Xcode не сможет связать ваш проект с этим libstd C++ lib.

Решение - если в вашей структуре проекта включен libstd C++, он мог бы стать красным, потому что Xcode не смог найти ссылку для него. Если вы удалите эту запись из структуры проекта и добавите новую lib (lib C++), вам хорошо идти.

Ответ 10

Скопировать его со старого Xcode (9.4) будет работать для физических устройств iOS. Для проблем с Simulator с помощью Did find: /usr/lib/libstdc++.6.dylib: mach-o, but not built for iOS simulator. Похоже на поддержку совместимости с яблоками для симулятора. Просто загрузите iOS 11.4 симулятор, и он может быть запущен на нем.

Ответ 11

Для симулятора просто удалите libstdc++.6.0.9.tbd из связанных структур и библиотек.

Ответ 12

Вы должны удалить libstdc++ из других флагов компоновщика в вашем проекте xcode

Проверьте это: enter image description here

Ответ 13

Мне удалось исправить проблему сборки, скопировав необходимые файлы с 9.4 до 10.1, как библиотеки платформы, так и среды выполнения. Но это решает только случаи с симулятором. Мое приложение по-прежнему зависает при запуске (заставка) при работе на физическом устройстве.

Ответ 14

Это будет работать Не копируйте файлы .dylib из /usr/lib в simruntime.

Список файлов и путей для копирования из Xcode 9.4.1 в Xcode 10.2.1

A) Скопируйте файл: libstdc++.6.0.9.tbd и libstdc++.6.tbd и libstdc++.tbd

от> Xcode9_41/Xcode9_41.app/Содержание/Разработчик/Платформы/iPhoneSimulator.platform/Разработчик /SDKs/iPhoneSimulator.sdk/usr/lib

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

B) Скопируйте файл: libstdc++.6.0.9.dylib и libstdc++.6.dylib и libstdc++.dylib

from> Xcode9_41/Xcode9_41.app/Содержание/Разработчик/Платформы/iPhoneOS.platform/Разработчик /Library/CoreSimulator/Профили/Среды выполнения /iOS.simruntime/Содержание/Ресурсы/RuntimeRoot/usr/lib

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