Ошибка "не найдена для"

У меня возникла ошибка после того, как я включил в приложение приложение. вчера приложение отлично работало, но сегодня оно больше не работало. Ошибка заключается в следующем:

ld: library not found for -lGoogleAdMobAds
clang: error: linker command failed with exit code 1 (use -v to see invocation)

как это исправить? спасибо!

Ответ 1

Иногда вы просто удаляете ссылку библиотеки и снова добавляете ссылку.

Помимо добавления SDK Google Mobile Ads и других библиотек с нуля, я бы рекомендовал вам проверить пути поиска библиотеки. Есть случаи, когда вы копируете или дублируете цель, Xcode решает, что ей нужно избежать любых двойных кавычек "с помощью" \". Убедитесь, что вы удалите все \s - это должно выглядеть так:

enter image description here

Я смог продублировать ошибку, выполнив префикс моего пути несколькими '\'.

Ответ 2

У меня была аналогичная проблема "библиотека не найдена". Однако это произошло потому, что я случайно использовал файл .xcodeproj вместо файла .xcworkspace.

Ответ 3

Выберите цель, перейдите в "Build Phases" в "Link Binary With Libraries" удалить ".a" файл этой библиотеки. Очистка и сборка.

Ответ 4

Если ошибка связана с Cocoapods следующим образом:

library not found for -lPod-...

Вам нужно проверить Другие флаги компоновщика и удалить его оттуда.

Дополнительная информация: Если у вас старый проект, который использует cocoapods. И недавно вам нужно было добавить use_frameworks! в ваш файл. cocoapods не добавят библиотеки в ваши другие флаги Linker больше наследует его. Поэтому вам может потребоваться удалить эти вручную из других флагов компоновщика, которые они добавили до используя use_frameworks!

Ответ 5

Для моего случая Xcode 7, также работал в Xcode 9.1

ld: library not found for -ldAfnetworking
clang: error: linker command failed with exit code 1 (use -v to see invocation)

установите для параметра " Build Active architecture Only значение " Yes

enter image description here

Ответ 6

Если ошибка выглядит следующим образом

ld: библиотека не найдена для -lpods

Я обнаружил, что файл "libPods.a", который имеет красный цвет (например, отсутствующие файлы), каким-то образом был создан в группе Framework проекта. Я просто удалил этот файл, и все получилось.

EDIT: другое решение

Другое решение, на которое я уже ответил в аналогичном вопросе, находится в этой ссылке

Ответ 7

Это также может произойти, если вы откроете файл проекта вместо рабочего пространства. Я так же потратил впустую, как день.

Ответ 8

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

Ответ 9

Это происходит, если вы используете cocoapods и не использовать .xcworkspace файл вместо стандартного .xcodeproj файл.

Ответ 10

Поздно для ответа, но вот список вещей, которые я пробовал. Поэтому он будет в одном месте, если кто-то захочет попытаться исправить проблему.

  • Действительная архитектура = armv7 armv7s
  • Только встроенная активная архитектура = НЕТ
  • Цель → Настройки сборки → Другие флаги компоновщика = $(унаследованные)
  • Цель → Настройки сборки → Путь поиска библиотеки = $(унаследованный)
  • Продукт чистый
  • Обновление в терминале

Ответ 11

В моем случае была проблема с именами. Моя библиотека была вызвана ios-admob-mm-adapter.a, но ожидалось Xcode, что имя должно начинаться с префикса lib. Я только что переименовал свой lib в libios-admob-mm-adapter.a и исправил проблему.

Я использую Cocoapods, и он связывает библиотеки с другими опциями флажков компоновщика в настройках сборки моей цели. Флаг выглядит как -l"ios-admob-mm-adapter"

Надеюсь, что это поможет кому-то еще.

Ответ 12

Просто GoogleAdMobAds.a отсутствует в цели проекта. Для меня это был libAdIdAccessLibrary.a Пожалуйста, проверьте прикрепленный скриншот

enter image description here

Ответ 13

Простое решение. Вот как я могу решить проблему:

  1. Перейти в каталог platforms/ios
  2. Затем выполните команду pod install

Это. Это должно установить недостающую библиотеку.

Ответ 14

Это ошибка времени компиляции для Static Library, которая обрабатывается Static Linker

ld: library not found for -l<Library_name>

Вы можете получить ошибку Library not found for, если вы не указали путь к библиотеке Library Search Paths

Вы столкнулись с этой проблемой, потому что Static Linker (ld) не может найти местоположение библиотеки, просто сообщите Xcode, где они находятся, добавив правильный каталог в Пути поиска библиотек в Xcode для ссылки.

Build Settings -> Search Paths -> Library Search Paths 

Источник здесь

Ответ 15

Я знаю, что это немного устарело, но я просто попал в аналогичную проблему, и запуск 'pod update' исправил это для меня. Ошибка моей библиотеки связана с AFNetworking...

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

Ответ 16

Эта ошибка очень странная.

У меня была эта ошибка с -ldAfnetworking, и я только копирую свой проект по другому пути и работает.

Ответ 17

Я попытался переименовать конфигурацию сборки Release в Production, но, видимо, cocoa pods не нравится. Я снова переименовал его в Release, и все строит отлично.

Ответ 18

Ответ @raurora указал мне в правильном направлении. Я включил библиотеки в свой путь "watchkitapp Extension/lib". В этом случае путь поиска библиотеки должен был быть экранирован с помощью '\', но компоновщик, похоже, не понимал этого. Чтобы исправить/обойти проблему, я переместил мой путь на один уровень, поэтому он больше не был в каталоге, содержащем пробел в имени.

Ответ 19

Я просто обновляю файл pod 'pod update', и он начинает работать для меня нормально.

Ответ 20

Запуск "pod update" в моем проекте устранил мою проблему с ошибкой "библиотека не найдена для -lSTPopup".

Отмечая ответ Тревора Панхорста:

"Просто будьте осторожны при обновлении pod, если вы не используете явные версии в вашем файле pod".

Ответ 21

Что касается меня, то эта проблема возникает, потому что я установил Библиотеку материалов для IOS. решить эту проблему

1: Зайдите в настройки сборки вашего целевого приложения.

2: Поиск других флагов компоновщика

3: Откройте другие флаги компоновщика и проверьте наличие библиотеки, которая упоминается в сообщении об ошибке.

4: уберите этот флаг.

5: Очистить и построить.

Я надеюсь, что это исправит вашу проблему.

Ответ 22

В случае ld: library not found for -{LIBRARY_NAME} произошло, потому что файл библиотеки не существует.

Проверьте путь к библиотеке в целевых объектах приложения "Фазы сборки" Вкладка "Пути поиска в библиотеке".

Путь к файлам библиотеки должен быть в соответствии с реальным путем, например, если ваш файл в корне проекта, вы должны установить путь как $(PROJECT_DIR)

Ответ 23

Вот как я исправил проблему:

  1. Перейти в каталог platforms/ios
  2. Затем выполните команду pod install

Это.

Ответ 24

watchman watch-del-all; npm start -- --reset-cache

казалось, сделал это для меня... Я нахожу, что делаю это часто, когда все остальное терпит неудачу