'ld: попередження: каталог не знайдено для параметра'


524

Коли я створюю свої програми Xcode 4, я отримую це попередження:

ld: warning: directory not found for option '-L/Users/frenck/Downloads/apz/../../../Downloads/Google Analytics SDK/Library'
ld: warning: directory not found for option '-L/Users/frenck/Downloads/apz/../Google Analytics SDK/Library'

Але в моєму додатку немає Google Analytics, я видалив усе, як я можу видалити помилку? І архівування програми додає мені помилку:

clang: error: no such file or directory: 'armv6'
Command /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang failed with exit code 1

Я пробував так багато речей, але я все ще отримую цю помилку, коли намагаюся створити файл .IPA


10
Зверніть увагу , що дуже схоже попередження, але -Fзамість -L: directory not found for option '-F/.... Дивіться відповідь @ macayer нижче для різниці.
пкамб

1
Примітка. Переконайтесь, що каталоги з пробілами вказані. наприклад, $(PROJECT_DIR)/my folderмає бути `" $ (PROJECT_DIR) / моя папка "
Jacksonkr

Я зіткнувся з цим питанням, коли в моєму класі не вказано належне цільове членство .
Том Говард

1
@Jackson Це виправило для мене. У мене було попередження -F, і я виправив це, цитуючи, як ви вказували у "Рамкових шляхах пошуку" в Налаштуваннях збірки. Спасибі
Позначте

Регулярне резервне копіювання - найкраща практика.
Gajendra K Chauhan

Відповіді:


877

Вам потрібно зробити це:

  1. Натисніть на ваш проект (цілі)
  2. Клацніть Налаштування збірки
    • якщо ваша помилка включає -Lпрапор, видаліть значення в Шлях пошуку бібліотеки
    • якщо ваша помилка включає -Fпрапор, видаліть значення в рамках Шлях пошуку

Щодо другої помилки, вибачте, я не можу вам допомогти з цією помилкою. Сподіваюся, хтось інший може вам допомогти.


5
Це зламало мій проект, але я просто прокоментував мій # імпорт Google Analytics і видалив SDK, кинув xcode, повторно додав і коментував мій #imports, і він працював знову :)
емоційність

1
Чи є якісь дії, які ви пропустили? Я зробив це, і тепер Xcode не може знайти купу інших файлів, які працювали секунди раніше. Довідка!
користувач

9
Будьте уважні до видалення, якщо вам справді потрібен шлях до бібліотеки. Перевірте, чи існує шлях, вказаний у помилці. Місце розташування бібліотеки на диску, можливо, було переміщено.
AWrightIV

3
Після видалення Шляхів пошуку бібліотеки я отримав помилку: ld: library not found for -lMoboSDK clang: error: linker command failed with exit code 1 (use -v to see invocation)(lMoboSDK - моя статична бібліотека)
lee

2
Мені довелося видалити шляхи під "Рамковими шляхами пошуку" в моїй "ЦІЛІ" AppTests, щоб очистити помилку.
AT3D

754

Є дві помилки, які, здається, люди бентежать.

Якщо це помилка "не знайдено для параметра" -L / ... ", це означає, що це помилка в бібліотеці, і вам слід спробувати:

  • Натисніть на ваш проект (цілі)
  • Клацніть Налаштування збірки
  • У розділі Шляхи пошуку бібліотеки видаліть контури

Якщо це "каталог, який не знайдено для параметра" -F / ... ", це означає, що це помилка Framework, і вам слід спробувати:

  • Натисніть на ваш проект (цілі)
  • Клацніть Налаштування збірки
  • У рамках Рамкових шляхів пошуку видаліть контури

Це може статися при переміщенні посиланого файлу.


3
Чому всі відповіді не можуть бути такими ж стислими та корисними, як ваша? Дякую. У мене є побічне запитання: звідки можна дізнатися про критичні помилки -L / -F? Я новачок у всій грі про поєднання / компіляцію / побудову, і вбудована документація Xcode - це не те, про що можна писати вдома. Я припускаю, що до більшості цих матеріалів можна отримати доступ через командний рядок. Я прав у цьому припущенні? Мені просто важко було навіть знати, з чого починати всі ці речі. Я звик до веб-розробки, тому, як ви могли припустити, знайти інформацію в цій царині трохи простіше.
Бен Сток

при видаленні Шляхів пошуку він знову показує, що FacebookSDK не знайдено. Це -F помилка. Я використовую Xcode 6.1
Rinku

Працювали для мене. Мені довелося видалити рамкові пошукові шляхи в цілях як для проекту, так і для модуля тестування (після оновлення проекту з iOS8.3 до iOS9).
ObjectiveTC

1
Давай Apple, що сталося з "це просто працює" ... це має стосуватися і розробників. Принаймні запропонуйте нам пропозиції щодо вирішення подібних питань замість цих виразних повідомлень. Ніби нагадує Microsoft, ew.
Джон Контаріно

2
Дякую за те, що "-L - це Шукати бібліотечні шляхи" та "-F - рамкові шляхи пошуку" , для мене це працювало ідеально.
swiftBoy

79

Моя проблема полягала в тому, що я відкрив оригінальний .xcodeproj замість .xcworkspace, який генерується CocoaPods.


Блін, це насправді врятувало мене після 3 годин стукання головою по клавіатурі
Григорій

60

Мені довелося видалити посилання за адресою:

  • Ціль
  • Налаштування побудови
  • Рамкові шляхи пошуку

введіть тут опис зображення

Тоді збірка була порушена (очікувалося). Тому я видалив Framework (FB SDK), повторно додав його та вуаля. Більше не помилок чи попереджень. :)


19

Я використовую какао-стручки для мене, я кинув Xcode і побіг

pod install

знову і відновив проект. Це все виправило!


1
Не впевнений, чому вас зволікають, коли ваша пропозиція насправді може бути вирішенням подібної проблеми! Зокрема, це рішення, якщо виникають подібні повідомлення про помилки після додавання нової конфігурації збірки до проекту. Оскільки додавання нової конфігурації збірки автоматично передбачає дублювання існуючої конфігурації, вам потрібно запустити, pod installщоб скорегувати значення стовпця "На основі файлу конфігурації".
Cellane

1
Також какао-стручки створюють робочу область. не забудьте відкрити це, а не файл проекту. pod встановити + відкрити файл робочої області вирішив мою проблему.
Майкл Кребс

В іонському це працює для мене, коли я запускав установку стручка всередині папки платформи / ios
Bas van Dijk

18

Для мене проблема полягала у відсутності символу "\" втечі.

Мої шляхи пошуку були розбиті на кілька рядків у Шлях пошуку бібліотеки. Зручно, вони ламалися на пробілах на моєму шляху. Додавання втечі "\" вирішило для мене.

$(PROJECT_DIR)/My\ Project\ Name/My\ Directory

Це ідеальна відповідь! Перевірений квітень 2014 р.
Ван Дю Тран

1
Прикро, що це все-таки порушено в Xcode 6, лютий 2015 року. Проміжків у шляхах не потрібно вручну уникати.
StilesCrisis

Прийняті і вище проголосовані відповіді вище не працювали для мене, але це було. Мій натяк, що саме ця проблема полягає в тому, що Xcode викидав 2-L помилки, при цьому кожна помилка була фрагментом повного шляху, і вона пробивалася на простір. Домовились, що у 2015 році нам не слід турбуватися про втечу космосу, який слід обробляти за кадром для нас!
Джон Контаріно

Так, це давня проблема в Xcode, яка виникає, коли ваш шлях пошуку автоматично додається системою (тобто через перетягування бібліотеки у "вбудовані бінарні файли" - чомусь він не уникає пробілів і згодом інтерпретує їх як окремі шляхи до файлів.
Еш,

13

Я знайшов посилання, яке мені довелося видалити:

  • Ціль
  • Налаштування побудови
  • Шляхи пошуку заголовків

33
Використовуючи Google, щоб знайти рішення для "ld: попередження: каталог не знайдений як варіант", знайшовши власну відповідь як рішення
Джаспер

13

У моєму випадку проблема полягала в траєкторіях Framework Search, які мали неповні, мертві, старі посилання або кілька кадрів одного типу. Видаліть їх, і ваш проект складеться без проблем.

не забудьте зробити Build -> чистим

введіть тут опис зображення


10

Я зіткнувся з тією ж проблемою (першою) після краху Xcode, і жодне із запропонованих рішень не спрацювало. Щоб придушити попередження, яке я зробив:

• керуйте схемами ...

• видалено поточну схему

• Автоматично створити схеми зараз


Ми повинні мати автора цього оригінального питання, розмістити Примітку, щоб проглянути всі ці рішення. Лист. Спробуйте перше, друге наступне рішення, наступне рішення ... тому що це було зроблено для міграції старого проекту, а інші рішення - це розумні рішення. Якби я не випробував усіх, я б не знайшов цього ... рухався далі і плутав розгублено. Thx Франческо!
Меттью Фергюсон

8

Це для мене працювало:

  1. Клацніть на Project
  2. Клацніть Налаштування збірки
  3. Пошук за "Рамковими шляхами пошуку"
  4. Очистіть шлях і введіть "$ (успадковано)"

6

Мене зачепило те, що, здається, теж те саме (цього разу в XCode 5.0.2). У моєму випадку, XCode вирішив уникнути цитат, вже в "Налаштуваннях побудови". Так, наприклад:

"$(SRCROOT)/../GoogleAdMobAdsSdkiOS-6.4.1"

став

\"$(SRCROOT)/../GoogleAdMobAdsSdkiOS-6.4.1\"

що спричинило збій збірки ...

Після того, як я усунув лайки на лапках, все знову працювало нормально. Крім того, було б, мабуть, найкраще повністю видалити цитати, якщо вони вам не потрібні.


1
ВЕЛИЧИЙ +1 для цього. Ці втечі на "були причиною помилки" каталогу не знайдено "для варіантів -L та -F.
Буде

1
дуже корисна порада ... у моєму проекті xcode 5.0.2 вийшов із лапок на початку, середині та в кінці шляхів .... він також дублював контури для деяких фреймвордів дивним чином ... видаляв втечі, нехай просто "справжній рамкові шляхи "для тих, якими користується проект, і позбулися попереджень ... також потрібно було вилучити / додати знову рамки після виправлення контурів
Marcos Reboucas,

6

Якщо це сталося після того, як ви додали Podfile до свого проекту та запустіть встановлення pod, перейдіть у папку свого проекту, ви побачите новий файл, створений "{ProjectName} .xcworkspace" - відкрийте цей файл у xcode

Установлені стручки будуть належним чином пов’язані з вашим проектом у цьому файлі


Можливо, ви відкрили файл проекту замість робочої області.
Джейсон

3

Дотримуйтесь цього покрокового рішення:

  1. Натисніть на ваш проект (цілі);
  2. Клацніть на Налаштування збірки;
  3. У розділі Шляхи пошуку бібліотеки видаліть контури;
  4. Додайте ./**в Шляхи пошуку бібліотеки.

3

Довідкова відповідь

У всіх відповідях було сказано про видалення рамкових або бібліотечних шляхів пошуку з цілі. У мене були дві проблеми:

  • По-перше, я розглядав головну ціль проекту, а не цільовий блок тесту.
  • По-друге, я не міг зрозуміти, як видалити рамку пошуку шляху. Виявилося, що це просто натискання на нього, щоб перейти в режим редагування, а потім просто видалення рядка.

Я хочу спробувати це, але я переживаю, що програма зламає програму. Ви впевнені, що все працювало після того, як ви це зробили?
Supertecnoboff

@Supertecnoboff Якщо ви переживаєте, що він не працюватиме, збережіть рядок перед тим, як видалити його. Ви завжди можете вставити його назад. У моїй програмі вже вийшов з ладу, тому мені просто довелося все намагатися, поки щось не спрацювало. Моя відповідь вище - те, що працювало на мене.
Сурагч

1

Для мене проблема, здавалося, полягала в тому, що я не включив відповідні рамки (при копіюванні доповнень з іншого проекту я також не копіював файли фреймворків)


1

Ключовим для цього типу помилок є введення параметрів збирання та перегляд кожного з розділів шляхів пошуку, таких як Шукати бібліотечні шляхи, Рамкові шляхи пошуку та, можливо, навіть Шляхи пошуку заголовків та очистити будь-який шлях, який більше не застосовується до додаток важко намагається знайти. Видаліть їх і продовжуйте доброго пана


1

перейдіть, перевірте, якої рамки немає, а потім перейдіть до

=> Фази побудови => Пов’язати бінарне з бібліотеками

видаліть бібліотеку, а потім додайте її назад


1

У мене була подібна проблема, яка пішла, коли я створив нову схему і використав її для відновлення ???


1

Для мене також увімкнено тести. Шлях пошуку тестів також був заповнений невірно.

Очистіть Шлях пошуку рамки як для звичайного, так і для тестового коду!


1

Через користувацькі каталоги, які увійшли до шляхів пошуку (фреймворки та бібліотека), проект переосмислює каталоги струків. тому він не може його знайти.

Щоб вирішити цю проблему, видаліть усі власні каталоги з

Шляхи пошуку -> Шляхи бібліотеки та рамкові шляхи,

дивіться лише $ {спадкований}.

Я сподіваюся, що це допомагає. Це працювало для мене.


1

введіть тут опис зображення

Додати $ (успадкований) -Objc -lcrypto - lssl в Project -> Налаштування збірки -> Шлях пошуку -> Шлях пошуку бібліотеки


Наведене вище рішення для мене працює добре. Якщо воно не працює для вас, будь ласка, поділіться скріншотом.
Bandish Kumar

1

Якщо це станеться після встановлення стручка з деякими залежностями, проблема може полягати в тому, що ви використовуєте стару версію програми (.xcworkspace) на Xcode.

Після встановлення стручка це результат, який ви можете бачити.

Вихід встановлення стручка.

Вихід встановлення стручка

Зробіть саме це, закрийте своє поточне вікно Xcode та відкрийте нову .xcworkspace.

Відкриття нового xcworkspace]

Відкриття нового xcworkspace


0

Ви повинні перевірити варіант для цього:

Створіть налаштування-> Шляхи пошуку рамки-> {введіть свій шлях до проекту}


0

Я вивчив усі [Шляхи пошуку бібліотеки - Шляхи пошуку рамки - Шляхи пошуку заголовків]. але шляхів для видалення немає, тому я зміг змусити цю попереджувальну роботу відключитися, зайшовши в пакет Xcode і створивши порожній каталог у місці розташування шляху, на який скаржився сповіщення.



0

Не забудьте створити таку ж конфігурацію для проекту Pod у вашій робочій області, якщо ви перейдете на нову конфігурацію MainApps.

Наприклад,

У моєму випадку для вирішення цієї проблеми мені довелося створити конфігурацію ReleaseOfficial також для проектів Pod, коли я створив конфігурацію ReleaseOfficial для мого MainApp.


0

Якщо ви встановили будь-який новий струк і отримали цю помилку, просто вийдіть з коду xcode> відкрити знову> створити проект


0

Якщо типове рішення не вирішує проблему, то для мене виправлено те, що всі версії iOS у проекті xcode (наприклад, IPHONEOS_DEPLOYMENT_TARGET) / цілі розгортання, підфіли (якщо застосовується) встановлені на один і той же номер версії.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.