2013-05-20 3 views
43

Я провел последние пять часов, чтобы найти эту странную ситуацию разумным объяснением.Apple Mach-O Linker Warning Directory не найден

Вот предупреждение:

ld: warning: directory not found for option '-L/Users/oasis_weng/Desktop/My Life/Life For Myself/Programming/Projects/ChangWeiBo/../xCodeExamples/ShareSDK/ShareSDK_v2.1.0/Extend/SDKExport' 
ld: warning: directory not found for option '-F/Users/oasis_weng/Desktop/My Life/Life For Myself/Programming/Projects/ChangWeiBo/../xCodeExamples/ShareSDK/ShareSDK_v2.1.0/Connection' 
ld: warning: directory not found for option '-F/Users/oasis_weng/Desktop/My Life/Life For Myself/Programming/Projects/ChangWeiBo/../xCodeExamples/ShareSDK/ShareSDK_v2.1.0/Core' 
ld: warning: directory not found for option '-F/Users/oasis_weng/Desktop/My Life/Life For Myself/Programming/Projects/ChangWeiBo/../xCodeExamples/ShareSDK/ShareSDK_v2.1.0/Extend' 
ld: warning: directory not found for option '-F/Users/oasis_weng/Desktop/My Life/Life For Myself/Programming/Projects/ChangWeiBo/../xCodeExamples/ShareSDK/ShareSDK_v2.1.0' 
ld: warning: directory not found for option '-F/Users/oasis_weng/Desktop/My Life/Life For Myself/Programming/Projects/ChangWeiBo/../xCodeExamples/ShareSDK/ShareSDK_v2.1.0/UI' 

Однако, хотя, я знаю, что все те, якобы «missing files» действительно и на самом деле существует в моей папке приложения и приложение работает должным образом с этими файлами.

Проблема этих каталогов в предупреждении является фактическим путь не включает ../xCodeExamples/ part.

Что я должен сделать, чтобы получить эти предупреждения прочь?

+2

Try 'Проекты (цели)' -> 'Строить Settings' - > «Пути поиска библиотеки» и удалить все пути. – Buntylm

ответ

88

Вы должны следовать этим шаг:

  • Нажмите на ваш проект (цели)
  • Щелкните на Строительства Настройки
  • В разделе «Библиотека путей поиска», удалите пути
  • Очистите сборку и снова запустите.

Удача !!

+12

* Follow-up *: также, если вы заимствуете публичные библиотеки для собственного использования, после путей поиска библиотек удаления вы должны удалить эти API и снова добавить их обратно. Это очень важно, потому что системе нужны пути поиска библиотек для этих библиотек, но эта запись будет генерироваться только при загрузке библиотек в первый раз. – donkey

+0

Мне пришлось удалить «$ {inherited}» только в обоих отладках и выпусках. Не все. Думаю, этот ответ вводит в заблуждение. – Siddharth

4

Была ли такая же проблема сегодня с различным решением (может кому-то помочь).

Если источник имя каталога $(SRCROOT) включают в себя пробелы, используйте "$(SRCROOT)" вместо $(SRCROOT) в библиотеке путей поиска.

Предположим, что ваше имя в каталоге «A B C». Если вы используете $(SRCROOT) вы могли бы получить что-то вроде:

directory not found for option '-LA' 
directory not found for option '-LB' 
directory not found for option '-LC' 
+1

Мое предупреждение также связано с листом '$ (SRCROOT). По какой-то причине моя была установлена ​​в '\" $ (SRCROOT)/a_project_subfolder \ "' ... Не знаю, почему символы возврата были добавлены, поскольку они, казалось, были проблемой (плюс я удалил вложенную папку). Так что да, '' $ (SRCROOT) "- это то, что я использовал. Благодаря! – dooleyo

38

Для меня, плохой путь был под Framework Search Paths.

Самый простой способ найти, где находится неправильный путь, - набрать его часть в окне поиска справа вверху. Это будет фильтровать список только для одного плохого пути. Удаление его, как предлагает другой ответ, устраняет проблему.

См. this answer для получения дополнительной информации.

+0

Спасибо за ваши ответы.Это решило проблему для меня слишком конкретно, чтобы очистить пути поиска в рамках Framework. +1 –

+3

Это должен быть принятый ответ, так как вопрос имеет '-F' в пути, который обозначает фреймворк, библиотеки используют' -L'. –

1

Также проверьте Строить Настройка-> Framework путь поиска для неиспользуемых папок (этот вид предупреждения случилось со мной, когда я удалил Карфаген из проекта сегодня)

Смежные вопросы