ld: библиотека не найдена для -lstdc ++. 6 - PullRequest
0 голосов
/ 27 июня 2018

После обновления версии Xcode до версии 10.0 бета начинает появляться ошибка «ld: library not found for -lstdc ++. 6». тот же код работает нормально в Xcode 9.2

Также обновлены macOS до 10.13.5

Ответы [ 6 ]

0 голосов
/ 03 июня 2019

Это не помогло мне при попытке сделать make install. Вместо этого я побежал make install -stdlib=libc++, который добился цели.

0 голосов
/ 06 декабря 2018

Быстрое решение - скопировать все файлы libstdc ++. * Из старого Xcode (9.4) в новый Xcode (10.x)

Для устройства:

cp /Applications/Xcode9.4.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/lib/libstdc++.* /Applications/Xcode10.app/Contents/Developer/Platforms /iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/lib/

Для симулятора:

cp /Applications/Xcode9.4.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/usr/lib/libstdc++.* /Applications/Xcode10.app/Contents/Developer/lat /iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/usr/lib/

0 голосов
/ 16 ноября 2018

Просто зайдите, чтобы создать настройки, связать двоичные файлы с библиотеками и там удалить это. Это решило мою проблему.

0 голосов
/ 26 сентября 2018
  1. Если вы используете внешний Make-файл для сборки библиотек C ++, добавьте

CXXFLAGS += -stdlib=libc++ Makefile вашей внешней библиотеки и удаленные экземпляры -stdlib=stdlibc++

  1. Если нет, игнорируйте вышеуказанный шаг, просто зайдите в Project> Target> Link Binary with library>
    • Удалить (-) libstdc ++. 6.0.9.tbd
    • Добавить (+) libc ++. Tbd
0 голосов
/ 20 сентября 2018

Как сказано выше, lstdc ++ удален из Xcode 10. Чтобы это исправить,

  1. Перейдите в Target -> BuildPhases -> Link Binary With Libraries

  2. Найдите lstdc ++ и удалите его.

  3. Теперь вы можете получить ошибку в некоторых рамках, которые используют вышеупомянутую библиотеку "lstdc ++". Теперь вам нужно либо обновить эти фреймворки, либо удалить их, чтобы Xcode мог их успешно построить.

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

Эта проблема возникнет при настройке приложения для iOS. В примечании к выпуску указано:

Уведомления об устаревании :

Сборка с 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 Beta 2

Примечание стороны:
Вы должны войти в систему для доступа к странице.
Ссылка может выйти из строя в следующей бета-версии (изменение URL-адресов), но это в части Разработчики / Скачать

XCode 10 официально выпущен с заметкой о выпуске , он все еще таков:

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

...