'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) / โฟลเดอร์ของฉัน "
Jacksonkr

ฉันวิ่งเข้าไปในปัญหานี้เมื่อชั้นเรียนของฉันไม่ได้มีความเหมาะสมสมาชิกเป้าหมายที่ระบุ
Tom Howard

1
@ แจ็คสันนั่นแก้ไขให้ฉัน ฉันได้รับคำเตือน -F และฉันแก้ไขมันโดยอ้างอิงตามที่คุณสั่งใน 'Framework Search Paths' ใน Build Settings ขอบคุณ
มาร์ค

การสำรองข้อมูลปกติเป็นวิธีปฏิบัติที่ดีที่สุด
Gajendra K Chauhan

คำตอบ:


877

คุณต้องทำสิ่งนี้:

  1. คลิกที่โครงการของคุณ (เป้าหมาย)
  2. คลิกที่การตั้งค่าการสร้าง
    • หากข้อผิดพลาดของคุณมีการ-Lตั้งค่าสถานะจากนั้นลบค่าในLibrary Search Paths
    • หากข้อผิดพลาดของคุณมีการ-Fตั้งค่าสถานะจากนั้นลบค่าในFramework Search Paths

และเกี่ยวกับข้อผิดพลาดที่สองขอโทษฉันไม่สามารถช่วยคุณด้วยที่ หวังว่าคนอื่นจะช่วยคุณได้


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
ฉันต้องลบเส้นทางภายใต้ 'Framework Search Paths' ใน 'AppTests' TARGET ของฉันเพื่อล้างข้อผิดพลาด
AT3D

754

มีข้อผิดพลาดสองประการที่ผู้คนดูเหมือนจะสับสน

หากเป็นข้อผิดพลาด " ไม่พบไดเรกทอรีสำหรับตัวเลือก ' -L / ... " แสดงว่าเป็นข้อผิดพลาดของ Library และคุณควรลองทำดังนี้:

  • คลิกที่โครงการของคุณ (เป้าหมาย)
  • คลิกที่การตั้งค่าการสร้าง
  • ภายใต้เส้นทางการค้นหาของห้องสมุดลบเส้นทาง

หากเป็น "ไดเรกทอรีไม่พบตัวเลือก ' -F / ... " แสดงว่าเป็นข้อผิดพลาด Framework และคุณควรลอง:

  • คลิกที่โครงการของคุณ (เป้าหมาย)
  • คลิกที่การตั้งค่าการสร้าง
  • ภายใต้Framework Search Pathsให้ลบเส้นทาง

สิ่งนี้อาจเกิดขึ้นเมื่อคุณย้ายไฟล์อ้างอิงไปรอบ ๆ


3
เหตุใดคำตอบทั้งหมดจึงไม่กระชับและเป็นประโยชน์เหมือนคุณ ขอบคุณ. ฉันมีคำถามด้าน: ใครจะเรียนรู้เกี่ยวกับข้อผิดพลาด cryptic -L / -F ฉันยังใหม่กับเกมการลิงก์ / การรวบรวม / การสร้างทั้งหมดและเอกสารในตัวของ Xcode ไม่ใช่สิ่งที่เขียนถึงบ้าน ฉันสมมติว่าส่วนใหญ่ของสิ่งนี้สามารถเข้าถึงได้ผ่านทางบรรทัดคำสั่ง ฉันถูกต้องในสมมติฐานนี้หรือไม่? เป็นเรื่องยากสำหรับฉันที่จะรู้ว่าจะเริ่มต้นกับทุกสิ่งนี้ได้อย่างไร ฉันคุ้นเคยกับการพัฒนาเว็บไซต์ดังนั้นอย่างที่คุณคิดการหาข้อมูลในขอบเขตนั้นง่ายกว่านิดหน่อย
เบ็นสต็อก

ในการลบเส้นทางการค้นหาอีกครั้งจะแสดง FacebookSDK ไม่พบ มันเป็นข้อผิดพลาด -F ฉันใช้ Xcode 6.1
Rinku

ทำงานให้ฉัน ฉันต้องลบพา ธ การค้นหาเฟรมเวิร์กในเป้าหมายสำหรับทั้งโครงการและโมดูลทดสอบ (เมื่ออัปเกรดโครงการจาก iOS8.3 เป็น iOS9)
ObjectiveTC

1
มาบน Apple เกิดอะไรขึ้นกับ "มันใช้งานได้" ... สิ่งนี้ควรนำไปใช้กับผู้พัฒนาด้วย อย่างน้อยก็ให้คำแนะนำแก่เราเกี่ยวกับวิธีการแก้ไขปัญหาเหล่านี้แทนที่จะเป็นข้อความที่เป็นความลับ Kinda เตือนของ Microsoft เช่นกัน
John Contarino

2
ขอบคุณมากสำหรับ"-L สำหรับเส้นทางการค้นหาในห้องสมุด" และ "-F คือกรอบการค้นหาเส้นทาง" เป็นแนวทางที่สมบูรณ์แบบสำหรับฉัน
swiftBoy

79

ปัญหาของฉันคือฉันเปิด. xcodeprojดั้งเดิมแทนที่จะเป็น. xcworkspaceที่สร้างโดย CocoaPods


ประณามสิ่งนี้ช่วยฉันได้จริงๆหลังจาก 3 ชั่วโมงจากการห้ำหั่นบนแป้นพิมพ์
Gregory Saldanha

60

ฉันต้องลบการอ้างอิงที่:

  • เป้า
  • การตั้งค่าการสร้าง
  • กรอบการค้นหาเส้นทาง

ป้อนคำอธิบายรูปภาพที่นี่

จากนั้นบิลด์ก็เสียหาย (คาดว่า) ดังนั้นฉันจึงลบ Framework (FB SDK), เพิ่มมันอีกครั้งและ voila ไม่มีข้อผิดพลาดหรือคำเตือนเพิ่มเติม :)


19

ฉันใช้ฝักโกโก้สำหรับฉันฉันออกจาก Xcode แล้ววิ่ง

pod install

อีกครั้งและเปิดโครงการอีกครั้ง สิ่งนี้แก้ไขทุกอย่าง!


1
ไม่แน่ใจว่าทำไมคุณถึงถูกลดระดับลงเมื่อข้อเสนอแนะของคุณสามารถแก้ไขปัญหาที่คล้ายกันได้! โดยเฉพาะมันเป็นวิธีแก้ปัญหาหากคุณพบข้อความแสดงข้อผิดพลาดที่คล้ายกันหลังจากเพิ่มการกำหนดค่าการสร้างใหม่ให้กับโครงการของคุณ เนื่องจากการเพิ่มการกำหนดค่าการสร้างใหม่หมายถึงการทำซ้ำการกำหนดค่าที่มีอยู่โดยอัตโนมัติคุณจึงต้องเรียกใช้pod installเพื่อปรับค่าคอลัมน์“ ตามไฟล์การกำหนดค่า”
Cellane

1
นอกจากนี้ฝักโกโก้ยังสร้างพื้นที่ทำงาน ตรวจสอบให้แน่ใจว่าเปิดไฟล์นั้นไม่ใช่ไฟล์โครงการ ติดตั้งพ็อด + เปิดไฟล์เวิร์กสเปซแก้ไขปัญหาของฉัน
Michael Krebs

ในอิออนนี้ใช้งานได้สำหรับฉันเมื่อฉันติดตั้งพ็อดภายในโฟลเดอร์ platforms / ios
Bas Dijk รถตู้

18

สำหรับฉันปัญหาคือตัวอักขระ "\" ที่หายไป

เส้นทางการค้นหาของฉันแบ่งออกเป็นหลายบรรทัดใน Library Search Paths สะดวกสบายพวกเขาแตกที่ช่องว่างในเส้นทางของฉัน การเพิ่มทางหนี "\" แก้ไขให้ฉัน

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

นี่คือคำตอบที่สมบูรณ์แบบ! ทดสอบเมษายน 2014
Van Du Tran

1
เป็นที่น่าสมเพชว่านี่ยังคงพังอยู่ใน Xcode 6 ก.พ. 2015 ช่องว่างในพา ธ ไม่ควรต้องหลบหนีด้วยตนเอง
StilesCrisis

คำตอบที่ได้รับการยอมรับและได้รับคะแนนโหวตสูงกว่าไม่ได้ผลสำหรับฉัน แต่สิ่งนี้ทำได้ คำแนะนำของฉันว่ามันเป็นปัญหานี้คือ Xcode กำลังขว้างข้อผิดพลาด 2 -L โดยแต่ละข้อผิดพลาดเป็นส่วนของเส้นทางที่สมบูรณ์และมันก็แตกหักไปในอวกาศ ตกลงว่าในปี 2558 เราไม่ต้องกังวลเกี่ยวกับการหลบหนีจากช่องว่างนั่นควรจัดการกับเบื้องหลังของเรา!
John Contarino

ใช่นี่เป็นปัญหาที่เกิดขึ้นมายาวนานใน Xcode ที่เกิดขึ้นเมื่อระบบค้นหาของคุณถูกเพิ่มโดยอัตโนมัติ (เช่นเนื่องจากการลากห้องสมุดเข้าไปใน 'ไบนารีไบนารีที่ฝังตัว' - ด้วยเหตุผลบางอย่างมันไม่หนีช่องว่างโดยอัตโนมัติ เป็นพา ธ ของไฟล์แยกกัน
Ash

13

ฉันพบข้อมูลอ้างอิงที่ฉันต้องลบที่:

  • เป้า
  • การตั้งค่าการสร้าง
  • เส้นทางการค้นหาส่วนหัว

33
ใช้ Google เพื่อค้นหาวิธีแก้ปัญหาสำหรับ 'ld: คำเตือน: ไม่พบไดเรกทอรีสำหรับตัวเลือก', หาคำตอบของตัวเองเป็นวิธีแก้ปัญหา
Jasper

13

ในกรณีของฉันปัญหาคือเส้นทางการค้นหา Framework ที่มีลิงก์ที่ไม่สมบูรณ์, ไม่ทำงาน, เก่าหรือหลายเฟรมเดียวกัน ลบออกและโครงการของคุณจะรวบรวมโดยไม่มีปัญหาใด ๆ

ต้องแน่ใจว่าทำ Build -> clean

ป้อนคำอธิบายรูปภาพที่นี่


10

ฉันพบปัญหาเดียวกัน (ตัวแรก) หลังจากเกิดข้อผิดพลาด Xcode และไม่มีวิธีแก้ไขปัญหาที่เสนอ เพื่อระงับการเตือนที่ฉันได้ทำ:

•จัดการรูปแบบ ...

•ลบรูปแบบปัจจุบัน

• Autocrate Schemes ทันที


เราควรให้ผู้เขียนคำถามต้นฉบับนี้โพสต์บันทึกย่อเพื่อเรียกใช้ผ่านโซลูชันเหล่านี้ทั้งหมด รายการ ลองใช้โซลูชันแรกโซลูชันที่สองถัดไปโซลูชันถัดไป ... เพราะสิ่งนี้ทำเพื่อการโยกย้ายโครงการเก่าของฉันและโซลูชันอื่น ๆ เป็นโซลูชันที่สมเหตุสมผล ถ้าฉันไม่ได้ลองทั้งหมดฉันจะไม่เจออันนี้ ... ย้ายไปอยู่และว่ายน้ำด้วยความสับสน ขอบคุณ Francesco!
แมทธิวเฟอร์กูสัน

8

นี่คือสิ่งที่ได้ผลสำหรับฉัน:

  1. คลิกที่โครงการ
  2. คลิกที่การตั้งค่าการสร้าง
  3. ค้นหา "Framework Search Paths"
  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

พ็อดที่ติดตั้งแล้วจะเชื่อมโยงกับโครงการของคุณในไฟล์นี้อย่างเหมาะสม


อาจเป็นได้ว่าคุณเปิดไฟล์โครงการแทนเวิร์กสเปซ
Jason

3

ทำตามวิธีแก้ปัญหาทีละขั้นตอนนี้:

  1. คลิกที่โครงการของคุณ (เป้าหมาย);
  2. คลิกที่การตั้งค่าการสร้าง;
  3. ภายใต้เส้นทางการค้นหาของห้องสมุดลบเส้นทาง
  4. เพิ่ม./**ในเส้นทางการค้นหาห้องสมุด

3

คำตอบเพิ่มเติม

คำตอบทั้งหมดบอกว่าจะลบเส้นทางการค้นหา Framework หรือ Library จากเป้าหมาย ฉันมีปัญหาสองข้อ:

  • ก่อนอื่นฉันดูเป้าหมายหลักของโครงการไม่ใช่เป้าหมายการทดสอบหน่วย
  • ประการที่สองฉันไม่ทราบวิธีการลบเส้นทางการค้นหาเฟรมเวิร์ก ปรากฎว่ามันเป็นเพียงการคลิกเพื่อเข้าสู่โหมดแก้ไขแล้วเพียงแค่ลบสตริง

ฉันต้องการลองสิ่งนี้ แต่ฉันกังวลว่ามันจะแตกแอพ คุณแน่ใจหรือว่าทุกอย่างทำงานหลังจากที่คุณทำเช่นนี้?
Supertecnoboff

@Supertecnoboff หากคุณกังวลว่าจะไม่ทำงานให้บันทึกสตริงก่อนที่จะลบ คุณสามารถวางกลับเข้าไปใหม่ได้แอปของฉันพังแล้วดังนั้นฉันต้องลองต่อไปจนกว่าจะมีบางอย่างทำงาน คำตอบของฉันคือสิ่งที่ได้ผลสำหรับฉัน
Suragch

1

สำหรับฉันปัญหาดูเหมือนว่าฉันไม่ได้รวมเฟรมเวิร์กที่เหมาะสม (เมื่อคัดลอกแอดออนจากโครงการอื่นฉันไม่ได้คัดลอกไฟล์เฟรมเวิร์กด้วย)


1

กุญแจสำคัญของข้อผิดพลาดประเภทนี้คือไปที่การตั้งค่าการสร้างและดูแต่ละส่วนของพา ธ การค้นหาเช่น Library Search Paths, Framework Search Paths และอาจเป็นได้แม้แต่ Header Search Path และเคลียร์พา ธ ที่ไม่ใช้แล้ว แอพกำลังพยายามค้นหา ลบออกและดำเนินการต่อไปครับ


1

ไปตรวจสอบว่ากรอบใดหายไปจากนั้นไปที่

=> Build Phases => เชื่อมโยงไบนารีกับไลบรารี

ลบไลบรารีแล้วเพิ่มกลับ


1

ฉันมีปัญหาคล้ายกันที่หายไปเมื่อฉันสร้างรูปแบบใหม่และใช้มันเพื่อสร้างใหม่ ???


1

สำหรับฉันฉันยังเปิดใช้งานการทดสอบด้วย เส้นทางการค้นหาสำหรับการทดสอบไม่ถูกต้องเช่นกัน

เคลียร์ Path Search Framework สำหรับรหัสปกติและรหัสทดสอบ!


1

เนื่องจากไดเรกทอรีที่กำหนดเองที่ป้อนไปยังพา ธ การค้นหา (เฟรมเวิร์กและไลบรารี) โปรเจ็กต์จะแทนที่ไดเร็กทอรีของพ็อด ดังนั้นจึงหาไม่เจอ

หากต้องการแก้ปัญหานี้ให้ลบไดเรกทอรีที่กำหนดเองทั้งหมดออก

เส้นทางการค้นหา -> เส้นทางห้องสมุดและเส้นทางกรอบ

ดูเพียง $ {สืบทอด}

ฉันหวังว่านี่จะช่วยได้. มันใช้งานได้สำหรับฉัน


1

ป้อนคำอธิบายรูปภาพที่นี่

เพิ่ม $ (สืบทอด) -Objc -lcrypto - lsslในโครงการ -> การตั้งค่าการสร้าง -> เส้นทางการค้นหา -> เส้นทางการค้นหาห้องสมุด


วิธีการแก้ปัญหาข้างต้นใช้งานได้ดีสำหรับฉันหากไม่ได้ผลสำหรับคุณโปรดแชร์ภาพหน้าจอ
Bandish Kumar

1

หากสิ่งนี้เกิดขึ้นหลังจากติดตั้งพ็อดที่มีการขึ้นต่อกันบางอย่างปัญหาอาจเกิดจากคุณกำลังใช้แอพรุ่นเก่า (.xcworkspace) บน Xcode

หลังจากติดตั้งพ็อดนี่เป็นผลลัพธ์ที่คุณอาจเห็น

ผลลัพธ์ของการติดตั้งพ็อด

เอาต์พุตของการติดตั้งพ็อด

ทำอย่างนั้นปิดหน้าต่าง Xcode ปัจจุบันของคุณและเปิด. xcworkspace ใหม่

การเปิด xcworkspace ใหม่]

เปิด xcworkspace ใหม่


0

คุณควรตรวจสอบตัวเลือกสำหรับสิ่งนี้:

สร้างการตั้งค่า -> กรอบการค้นหาเส้นทาง -> {ใส่เส้นทางโครงการของคุณ}


0

ฉันได้ดู [Library Search Paths - Framework Search Paths - Header Search Paths ทั้งหมด] แต่ไม่มีเส้นทางที่จะลบดังนั้นฉันสามารถทำให้การแจ้งเตือนนี้หายไปโดยไปที่ชุด Xcode และสร้างไดเรกทอรีว่างที่ตำแหน่งเส้นทางที่การแจ้งเตือนนั้นบ่น



0

อย่าลืมที่จะสร้างการกำหนดค่าเดียวกันสำหรับโครงการ Pod ในพื้นที่ทำงานของคุณหากคุณเปลี่ยนเป็นการกำหนดค่าใหม่ MainApps

ตัวอย่างเช่น,

ในกรณีของฉันเพื่อแก้ไขปัญหานี้ฉันต้องสร้างการกำหนดค่า ReleaseOfficialและโครงการPodเมื่อฉันสร้างการกำหนดค่า ReleaseOfficialสำหรับ MainApp ของฉัน


0

หากคุณติดตั้งพ็อดใหม่ใด ๆ แล้วได้รับข้อผิดพลาดนี้เพียงออกจาก xcode> เปิดอีกครั้ง> สร้างโครงการ


0

หากวิธีการทั่วไปไม่สามารถแก้ไขปัญหาได้สิ่งที่แก้ไขได้สำหรับฉันคือทำให้แน่ใจว่าเวอร์ชั่น iOS ทั้งหมดในโครงการ xcode (เช่น IPHONEOS_DEPLOYMENT_TARGET) / เป้าหมายการปรับใช้ Podfiles (ถ้ามี) และอื่น ๆ ถูกตั้งค่าเป็นหมายเลขเวอร์ชันเดียวกัน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.