'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 का उत्तर देखें।
pkamb

1
नोट: सुनिश्चित करें कि रिक्त स्थान वाली निर्देशिकाएं उद्धृत की गई हैं। उदाहरण के लिए, $(PROJECT_DIR)/my folder'' $ (PROJECT_DIR) / मेरा फ़ोल्डर होना चाहिए ''
जैक्सनकैप

मैं इस मुद्दे में भाग गया जब मेरी कक्षा में उचित लक्ष्य सदस्यता निर्दिष्ट नहीं थी
टॉम हावर्ड

1
@Jackson कि यह मेरे लिए तय है। मेरे पास -F चेतावनी थी, और मैंने इसे बिल्ड सेटिंग्स में दिए गए 'फ्रेमवर्क सर्च पाथ्स' के निर्देश के अनुसार उद्धृत करके तय किया था। धन्यवाद
मार्क

नियमित बैकअप सबसे अच्छा अभ्यास है।
गजेंद्र के चौहान

जवाबों:


877

आपको यह करने की आवश्यकता है:

  1. अपनी परियोजना पर क्लिक करें (लक्ष्य)
  2. बिल्ड सेटिंग्स पर क्लिक करें
    • यदि आपकी त्रुटि में -Lध्वज शामिल है , तो लाइब्रेरी खोज पथ में मान हटाएं
    • यदि आपकी त्रुटि में -Fध्वज शामिल है , तो फ़्रेमवर्क खोज पथ में मान हटाएं

और दूसरी त्रुटि के बारे में, क्षमा करें, मैं आपकी मदद नहीं कर सकता। आशा है कि कोई और आपकी मदद कर सकता है।


5
इसने मेरी परियोजना को तोड़ दिया, लेकिन मैंने अभी-अभी अपने Google Analytics #imports पर टिप्पणी की और 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' TARGET पर 'फ्रेमवर्क सर्च पाथ्स' के तहत रास्तों को हटाना पड़ा।
AT3D

753

दो त्रुटियां हैं जो लोगों को भ्रमित करने वाली लगती हैं।

अगर यह " -L / ... विकल्प के लिए निर्देशिका नहीं मिली है " त्रुटि है, तो इसका मतलब है कि यह लाइब्रेरी त्रुटि है, और आपको इसके लिए प्रयास करना चाहिए:

  • अपनी परियोजना पर क्लिक करें (लक्ष्य)
  • बिल्ड सेटिंग्स पर क्लिक करें
  • लाइब्रेरी खोज पथ के अंतर्गत , पथ हटाएं

यदि यह एक "निर्देशिका विकल्प के लिए नहीं मिला है ' -F / ...", इसका मतलब है कि यह एक फ्रेमवर्क त्रुटि है, और आपको इसके लिए प्रयास करना चाहिए:

  • अपनी परियोजना पर क्लिक करें (लक्ष्य)
  • बिल्ड सेटिंग्स पर क्लिक करें
  • फ़्रेमवर्क खोज पथ के अंतर्गत , पथ हटाएं

जब आप संदर्भित फ़ाइल को चारों ओर ले जाते हैं, तो ऐसा हो सकता है।


3
सभी उत्तर आपके जैसे संक्षिप्त और उपयोगी क्यों नहीं हो सकते? धन्यवाद। मेरा एक पक्ष प्रश्न है: क्रिप्टिक -L / -F त्रुटियों के बारे में कोई कहां सीखता है? मैं पूरे लिंकिंग / कम्पाइलिंग / बिल्डिंग गेम के लिए नया हूँ, और Xcode का बिल्ट-इन डॉक्यूमेंटेशन घर के बारे में लिखने के लिए बिल्कुल कुछ नहीं है। मैं मान रहा हूं कि इस सामान को ज्यादातर कमांड लाइन के जरिए एक्सेस किया जा सकता है। क्या मैं इस धारणा में सही हूं? यह मेरे लिए मुश्किल है कि मैं यह भी जान सकूं कि यह सब कहां से शुरू किया जाए। मैं वेब विकास के लिए उपयोग किया जाता हूं, इसलिए जैसा कि आप मान सकते हैं, उस दायरे में जानकारी ढूंढना थोड़ा आसान है।
बेन स्टॉक

खोज पथ को हटाने पर यह दिखाता है कि FacebookSDK नहीं मिला है। यह एक -F त्रुटि है। मैं Xcode 6.1
रिंकू

मेरे लिए काम किया। मुझे प्रोजेक्ट और टेस्टिंग मॉड्यूल (iOS8.3 से iOS9 के प्रोजेक्ट अपग्रेड पर) दोनों के टारगेट में फ्रेमवर्क सर्च के रास्ते हटाने थे।
ऑब्जेक्टिव

1
एप्पल पर आओ, "यह सिर्फ काम करता है" क्या हुआ ... यह देव पर भी लागू होना चाहिए। कम से कम हमें सुझाव दें कि इन गुप्त संदेशों के बजाय इस प्रकार के मुद्दों को कैसे हल करें। Kinda Microsoft, ew की याद दिलाता है।
जॉन कॉन्टेरिनो

2
आपके लिए बहुत-बहुत धन्यवाद "-L लाइब्रेरी सर्च पाथ्स के लिए है" और "-F फ्रेमवर्क सर्च पाथ्स" गाइडलाइन है, इसने मेरे लिए परफेक्ट काम किया।
स्विफ्टबॉय

79

मेरी समस्या यह है कि मैं मूल खोला था .xcodeproj के बजाय .xcworkspace कि CocoaPods द्वारा उत्पन्न किया गया था।


लानत यह वास्तव में कीबोर्ड पर मेरे सिर तेज़ करने के 3 घंटे के बाद मुझे बचाया
ग्रेगरी सल्दान्हा

60

मुझे इस संदर्भ को हटाना पड़ा:

  • लक्ष्य
  • सेटिंग्स बनाएँ
  • ढाँचा खोज पथ

यहाँ छवि विवरण दर्ज करें

तब बिल्ड टूट गया था (अपेक्षित)। इसलिए मैंने फ्रेमवर्क (एफबी एसडीके) को हटा दिया, इसे और वॉइला को फिर से जोड़ा। कोई और त्रुटि या चेतावनी नहीं। :)


19

मैं अपने लिए कोको की फली का उपयोग करता हूं, मैंने Xcode छोड़ दिया और भाग गया

pod install

फिर से और परियोजना को फिर से खोल दिया। यह सब कुछ तय हो गया!


1
सुनिश्चित नहीं हैं कि जब आपका सुझाव वास्तव में इसी तरह के मुद्दे का हल हो सकता है, तो आपको नीचा क्यों दिखाया जा रहा है! विशेष रूप से, यह एक समाधान है यदि आप अपने प्रोजेक्ट में नए बिल्ड कॉन्फ़िगरेशन जोड़ने के बाद समान त्रुटि संदेश का अनुभव कर रहे हैं। चूंकि नया बिल्ड कॉन्फ़िगरेशन जोड़ना स्वचालित रूप से मौजूदा कॉन्फ़िगरेशन को डुप्लिकेट करता है, इसलिए आपको pod install"कॉन्फ़िगरेशन फ़ाइल के आधार पर" कॉलम मान को समायोजित करने के लिए चलाने की आवश्यकता है ।
सेलन

1
इसके अलावा, कोको फली एक कार्यक्षेत्र उत्पन्न करता है। यह सुनिश्चित करें कि प्रोजेक्ट फ़ाइल नहीं है। पॉड स्थापित + कार्यक्षेत्र फ़ाइल खोलें मेरी समस्या तय की।
माइकल क्रेब्स

आयनिक में यह मेरे लिए काम करता है जब मैंने प्लेटफ़ॉर्म / आईओएस फ़ोल्डर के अंदर पॉड स्थापित किया
बस वैन डीजेक

18

मेरे लिए समस्या एक गायब भागने वाला चरित्र था।

लाइब्रेरी खोज पथों में मेरे खोज पथ कई लाइनों पर टूट गए थे। आसानी से, वे मेरे रास्ते में रिक्त स्थान को तोड़ रहे थे। भागने को जोड़ना "\" ने मेरे लिए तय किया।

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

यह एकदम सही जवाब है! अप्रैल 2014 को परीक्षण किया गया
वान डू ट्रान

1
यह दयनीय है कि यह अभी भी एक्सकोड 6, फरवरी 2015 में टूट गया है। पथों में रिक्त स्थान को मैन्युअल रूप से भागने की आवश्यकता नहीं होनी चाहिए।
स्टाइल्सक्रिस

ऊपर स्वीकार किए गए और उच्च मतदान के जवाबों ने मेरे लिए काम नहीं किया, लेकिन यह किया। मेरा संकेत है कि यह मुद्दा यह था कि Xcode 2 -L त्रुटियाँ फेंक रहा था, प्रत्येक त्रुटि के साथ पूर्ण पथ का एक टुकड़ा था और यह अंतरिक्ष पर टूट रहा था। सहमत हैं कि 2015 में हमें अंतरिक्ष से बचने के बारे में चिंता नहीं करनी चाहिए, जिसे हमारे लिए पर्दे के पीछे से संभालना चाहिए!
जॉन कॉन्टेरिनो

हाँ, यह एक लंबा-चौड़ा मुद्दा है Xcode में जो तब होता है जब आपके खोज पथ को सिस्टम द्वारा स्वचालित रूप से जोड़ दिया जाता है (जैसे कि लाइब्रेरी को 'एम्बेडेड बायनेरिज़' में खींचने के कारण - किसी कारण से यह स्वचालित रूप से रिक्त स्थान से नहीं बचता है और बाद में व्याख्या करता है उन्हें अलग फ़ाइल पथ के रूप में।
ऐश

13

मुझे वह संदर्भ मिला, जिसे मुझे निकालना था:

  • लक्ष्य
  • सेटिंग्स बनाएँ
  • हैडर खोज पथ

33
Google का उपयोग करने के लिए 'ld: चेतावनी: निर्देशिका विकल्प के लिए नहीं मिला', समाधान के रूप में अपना जवाब खोजने के लिए
जैस्पर

13

मेरे मामले में समस्या फ्रेमवर्क सर्च पथ की थी, जिसमें अपूर्ण, मृत, पुराने लिंक या एक ही प्रकार के कई फ्रेमवर्क थे। उन्हें निकालें और आपका प्रोजेक्ट बिना किसी समस्या के संकलन करेगा।

बिल्ड -> क्लीन जरूर करें

यहाँ छवि विवरण दर्ज करें


10

मैं एक ही समस्या में भाग गया (पहले एक) एक Xcode दुर्घटना के बाद और कोई भी समाधान प्रस्तावित नहीं किया। मेरे द्वारा की गई चेतावनी को दबाने के लिए:

• योजनाओं का प्रबंधन ...

• वर्तमान योजना को हटा दिया गया

• स्वतः योजनाएं अब


हमारे पास इस मूल प्रश्न के लेखक के पास इन सभी समाधानों के माध्यम से चलने के लिए एक नोट होना चाहिए। एक सूचि। पहले एक, दूसरे अगले समाधान, अगले समाधान की कोशिश करें ... क्योंकि यह एक पुरानी परियोजना के मेरे प्रवास के लिए किया था और अन्य समाधान उचित समाधान हैं। अगर मैंने सभी को आज़माया नहीं, तो मुझे यह नहीं मिला ... चले गए और भ्रम में तैर रहे थे। Thx फ्रांसेस्को!
मैथ्यू फर्ग्यूसन

8

इसी से मेरा काम बना है:

  1. प्रोजेक्ट पर क्लिक करें
  2. बिल्ड सेटिंग्स पर क्लिक करें
  3. "ढाँचा खोज पथ" के लिए खोजें
  4. रास्ता साफ़ करें और टाइप करें "$ (विरासत में मिला)"

6

मुझे लगता है कि एक ही मुद्दा भी प्रतीत होता है के द्वारा थोड़ा सा (XCode 5.0.2 में इस बार)। मेरे मामले में, क्या हुआ था XCode ने "बिल्ड सेटिंग्स" में पहले से ही उद्धरण से बचने का फैसला किया। उदाहरण के लिए:

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

बन गया

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

जिसके कारण निर्माण विफल हो गया ...

एक बार जब मैंने उद्धरणों पर पलायन को हटा दिया तो सब कुछ फिर से ठीक हो गया। इसके अलावा, संभवतः उद्धरण को पूरी तरह से हटाना सबसे अच्छा होगा जब तक कि आपको उनकी आवश्यकता न हो।


1
इसके लिए विशाल +1। "-दोनों को नहीं मिला" का कारण "-एफ़-ओफ़" -L विकल्पों में त्रुटि थी।
विल

1
बहुत उपयोगी टिप ... मेरी परियोजना में xcode 5.0.2 पथ के आरंभ, मध्य और अंत में उद्धरणों से बच गया .... उसने कुछ चौखटों के लिए एक अजीब तरीके से दोहराए गए मार्गों को भी हटा दिया था ... हटाए गए भाग, बस "वास्तविक" फ्रेमवर्क पथ "उन लोगों के लिए जो परियोजना का उपयोग कर रहे हैं और चेतावनियों से छुटकारा पा लिया है ... रास्तों को सही करने के बाद फिर से रूपरेखाओं को निकालना / जोड़ना आवश्यक था
मार्कोस रेबुकास

6

यदि आपके प्रोजेक्ट में पॉडफाइल जोड़ने और पॉड इंस्टॉल चलाने के बाद ऐसा होता है, तो अपने प्रोजेक्ट फ़ोल्डर में जाएं, आपको एक नई फ़ाइल दिखाई देगी जो "{ProjectName} .xcworkspace" बनाई गई है - उस फाइल को xcode में खोलें।

जो पॉड्स लगाए गए हैं, वे इस फाइल में आपके प्रोजेक्ट से ठीक से जुड़े होंगे


हो सकता है कि आपने कार्यक्षेत्र के बजाय प्रोजेक्ट फ़ाइल खोली हो।
जेसन

3

इस चरण-दर-चरण समाधान का पालन करें:

  1. अपने प्रोजेक्ट (लक्ष्य) पर क्लिक करें;
  2. बिल्ड सेटिंग्स पर क्लिक करें;
  3. लाइब्रेरी सर्च पाथ के तहत, रास्तों को हटाएं;
  4. ./**लाइब्रेरी सर्च पाथ पर जोड़ें ।

3

पूरक जवाब

सभी उत्तरों में कहा गया है कि या तो फ्रेमवर्क या लाइब्रेरी खोज पथ को लक्ष्य से हटा दें। मुझे दो समस्याएं थीं:

  • पहले, मैं यूनिट टेस्ट लक्ष्य के बजाय अपने मुख्य परियोजना लक्ष्य को देख रहा था।
  • दूसरा, मैं यह पता नहीं लगा सका कि फ्रेमवर्क खोज पथ को कैसे हटाया जाए। यह पता चला कि यह केवल संपादन मोड में आने के लिए इसे क्लिक कर रहा था और फिर स्ट्रिंग को हटा रहा था।

मैं यह कोशिश करना चाहता हूं, लेकिन मुझे चिंता है कि यह ऐप को तोड़ देगा। क्या आपको यकीन है कि आपने ऐसा करने के बाद सब कुछ काम किया है?
सुपरटेकनोफॉफ

@Supertecnoboff यदि आप चिंतित हैं कि यह काम नहीं करेगा, तो इसे हटाने से पहले स्ट्रिंग को सहेजें। आप हमेशा इसे वापस पेस्ट कर सकते हैं। मेरा ऐप पहले से ही टूटा हुआ था, इसलिए मुझे बस कुछ काम करने तक कोशिश करते रहना था। ऊपर मेरा जवाब है कि मेरे लिए क्या काम किया है।
सूर्याग

1

मेरे लिए यह समस्या प्रतीत हो रही थी कि मैंने उचित फ्रेमवर्क को शामिल नहीं किया था (जब किसी अन्य प्रोजेक्ट से एडऑन्स की नकल करते हुए मैंने फ्रेमवर्क फ़ाइलों को भी कॉपी नहीं किया था)


1

इस प्रकार की त्रुटि के लिए महत्वपूर्ण है कि आप सेटिंग में जाएं और प्रत्येक खोज पथ वर्गों जैसे लाइब्रेरी खोज पथ, फ़्रेमवर्क खोज पथ और संभवतः यहां तक ​​कि हेडर खोज पथ को देखें और उन सभी पथों को साफ़ करें, जो अब लागू नहीं होते हैं कि आपके एप्लिकेशन को खोजने के लिए एक कठिन समय चल रहा है। उन्हें हटाओ और अच्छे साहब को आगे बढ़ाओ


1

जाने की जांच करें कि कौन सा ढांचा गायब है, फिर जाएं

=> चरणों का निर्माण => लिंक बाइनरी लाइब्रेरी के साथ

लाइब्रेरी निकालें और फिर वापस जोड़ें


1

मेरे पास एक ऐसी ही समस्या थी जो एक नई योजना बनाते समय और पुनर्निर्माण के लिए इस्तेमाल होने पर चली गई थी ???


1

मेरे लिए मेरे पास टेस्ट भी सक्षम हैं। परीक्षणों के लिए खोज पथ भी गलत भरा गया था।

नियमित कोड और परीक्षण कोड दोनों के लिए फ़्रेमवर्क खोज पथ को साफ़ करें!


1

खोज पथ (चौखटे और पुस्तकालय) में प्रवेश करने वाले कस्टम निर्देशिकाओं के कारण, परियोजना पॉड की निर्देशिकाओं को ओवरराइड करती है। तो यह नहीं मिल सकता है।

इस समस्या को हल करने के लिए, सभी कस्टम निर्देशिकाओं को हटा दें

खोज पथ -> लाइब्रेरी पथ और फ्रेमवर्क पथ,

केवल $ {विरासत में मिला} देखें।

आशा है कि ये आपकी मदद करेगा। इसने मेरे लिए काम किया।


1

यहाँ छवि विवरण दर्ज करें

$ जोड़ें (विरासत में मिली) -Objc -lcrypto - lssl इन प्रोजेक्ट -> बिल्ड सेटिंग -> खोज पथ -> लाइब्रेरी खोज पथ


उपरोक्त समाधान मेरे लिए ठीक काम कर रहा है, यदि यह आपके लिए काम नहीं कर रहा है, तो कृपया स्क्रीनशॉट साझा करें।
बंदिश कुमार

1

यदि यह कुछ निर्भरता के साथ पॉड स्थापित करने के बाद होता है, तो समस्या यह हो सकती है कि आप Xcode पर ऐप (.xcworkspace) के पुराने संस्करण का उपयोग कर रहे हैं।

पॉड स्थापित होने के बाद, यह वह आउटपुट है जिसे आप देख सकते हैं।

एक फली का उत्पादन स्थापित करें।

एक फली स्थापित करने का उत्पादन

ठीक ऐसा ही करें, अपनी वर्तमान Xcode विंडो बंद करें और नया .xcworkspace खोलें।

नया xcworkspace खोलना]

नया xcworkspace खोलना


0

आपको इसके लिए विकल्प की जांच करनी चाहिए:

बिल्ड सेटिंग्स-> फ्रेमवर्क सर्च पाथ्स-> {इनपुट योर प्रोजेक्ट पाथ}


0

मैंने सभी [लाइब्रेरी सर्च पाथ्स - फ्रेमवर्क सर्च पाथ्स - हैडर सर्च पाथ्स] पर गौर किया है। लेकिन हटाने के लिए कोई रास्ता नहीं है, इसलिए मैं इस चेतावनी को Xcode बंडल में जाने और पथ स्थान पर एक खाली निर्देशिका बनाने के लिए सक्षम था जो अलर्ट के बारे में शिकायत कर रहा था।


0

लक्ष्य में चयनित केवल 1 "libFlurry.a" सुनिश्चित करें

मेरे लिए काम किया।

यहाँ छवि विवरण दर्ज करें


0

अपने कार्यक्षेत्र में पॉड प्रोजेक्ट के लिए समान कॉन्फ़िगरेशन बनाना न भूलें, यदि आप मेनएप्स नए कॉन्फ़िगरेशन में बदलते हैं।

उदाहरण के लिए,

मेरे मामले में, इस समस्या को हल करने के लिए मुझे रिलीज़ऑफ़िशियल कॉन्फ़िगरेशन और साथ ही पॉड परियोजनाओं के लिए बनाना पड़ा जब मैंने अपने मेनएप के लिए रिलीज़ऑफ़िशियल कॉन्फ़िगरेशन बनाया ।


0

यदि आपने कोई नई पॉड स्थापित की है और फिर यह त्रुटि आई है, तो बस xcode> फिर से खोलें> प्रोजेक्ट बनाएं


0

यदि विशिष्ट समाधान समस्या का समाधान नहीं करता है, तो मेरे लिए यह निर्धारित करना सुनिश्चित करता है कि सभी iOS संस्करण xcode प्रोजेक्ट में (जैसे IPHONEOS_DEPLOYMENT_TARGET) / परिनियोजन लक्ष्य, पॉडफाइल्स (यदि लागू हो), आदि एक ही संस्करण संख्या पर सेट हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.