ฉันได้รับข้อผิดพลาดต่อไปนี้
libxml / tree.h ไม่มีไฟล์หรือไดเร็กทอรีดังกล่าว
ฉันได้เพิ่มlibxml2.dylib
ในโครงการของฉันแล้ว แต่ฉันได้รับปัญหาประเภทนี้ โปรดช่วยฉันด้วย
ฉันได้รับข้อผิดพลาดต่อไปนี้
libxml / tree.h ไม่มีไฟล์หรือไดเร็กทอรีดังกล่าว
ฉันได้เพิ่มlibxml2.dylib
ในโครงการของฉันแล้ว แต่ฉันได้รับปัญหาประเภทนี้ โปรดช่วยฉันด้วย
คำตอบ:
ทำตามคำแนะนำที่นี่ภายใต้ "การตั้งค่าไฟล์โครงการของคุณ"
การตั้งค่าไฟล์โครงการของคุณ
คุณต้องเพิ่ม libxml2.dylib ในโปรเจ็กต์ของคุณ (อย่าใส่ไว้ในส่วน Frameworks) ใน Mac คุณจะพบได้ที่
/usr/lib/libxml2.dylib
และสำหรับ iPhone คุณจะต้องใช้/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.0.sdk/usr/lib/libxml2.dylib
เวอร์ชันนั้นเนื่องจาก libxml2 เป็น. dylib (ไม่ใช่. เฟรมเวิร์คที่เป็นมิตรดี) เรายังมีอีกสิ่งหนึ่งที่ต้องทำ ไปที่การตั้งค่าการสร้างโครงการ (โครงการ -> แก้ไขการตั้งค่าโครงการ -> สร้าง) และค้นหา "เส้นทางการค้นหา" ใน "เส้นทางการค้นหาส่วนหัว" ให้เพิ่มเส้นทางต่อไปนี้:
$(SDKROOT)/usr/include/libxml2
ดูคำตอบของ OPด้วย
/usr/include
นั้นจริงๆ ฉันไม่ได้ลองติดตั้ง libxml2 ดังนั้นฉันจึงไม่สามารถยืนยันพฤติกรรมเริ่มต้นได้ แต่ใช่ว่าจะดีกว่ามากถ้าจะเชื่อมโยงแบบนั้น
การเพิ่ม libxml2 เป็นความเจ็บปวดที่ใหญ่โตอ้วนและจู้จี้จุกจิกในตูด หากคุณกำลังจะทำให้ทำก่อนที่จะสร้างโครงการของคุณมากเกินไป
คุณต้องเพิ่มสองวิธี :
คลิกที่เป้าหมายของคุณ (ไม่ใช่โครงการของคุณ) Build Phases
และเลือก
คลิกที่สามเหลี่ยมเปิดเผยLink Binary With Libraries
ชื่อ คลิก+
เพื่อเพิ่มไลบรารี
libxml2.dylib
เลื่อนไปที่ด้านล่างของรายการและเลือกที่ ที่เพิ่มไลบรารี libxml2 ให้กับโปรเจ็กต์ของคุณ
ตอนนี้คุณต้องบอกโครงการของคุณว่าจะหาที่ไหนอีกสามครั้ง
เลือกไฟล์Build Settings tab
.
เลื่อนลงไปที่Linking
ส่วน ภายใต้คอลัมน์โครงการของคุณดับเบิลคลิกที่Other Linker Flags
แถว คลิก+
และเพิ่มลง-lxml2
ในรายการ
ยังมีอีกมาก
ในแท็บเดียวกันให้เลื่อนลงไปที่Search Paths
ส่วน
ภายใต้คอลัมน์โครงการของคุณในการเพิ่มแถวFramework Search Paths
/usr/lib/libxml2.dylib
ในHeader Search Paths
และเพิ่มแถวUser Header Search Paths
$(SDKROOT)/usr/include/libxml2
ในสองกรณีสุดท้ายตรวจสอบให้แน่ใจว่าได้ป้อนเส้นทางใน Debug และ Release
ภายใต้เมนูเลือกProduct
Clean
จากนั้นถ้าฉันเป็นคุณ (และยอมเผชิญหน้ากับมันฉันก็คงเป็น) ฉันจะออกจาก Xcode และเดินจากไป เมื่อคุณกลับมาและเปิดตัวคุณควรจะไป
opening import file 'Swift.swift': Not a directory
หลังจากทำสิ่งนี้ใน Xcode 5.
1) เพิ่มไลบรารี "libxml2.dylib" ลงใน TARGET ของโปรเจ็กต์ของฉัน (สร้างเฟส -> เชื่อมโยงไบนารีกับไลบรารี)
2) เพิ่ม "$ (SDKROOT) / usr / include / libxml2" ในเส้นทางการค้นหาส่วนหัวบน TARGET (การตั้งค่าการสร้าง -> เส้นทางการค้นหาส่วนหัว)
หลังจากนี้เป้าหมายควรสร้างสำเร็จ
คุณต้องเพิ่ม/usr/include/libxml2
เส้นทางการรวมของคุณด้วย
สร้างลิงค์ของ @Matt Ball
ฉันพบว่าสิ่งต่อไปนี้เป็นประโยชน์สำหรับฉัน
คุณต้องเพิ่ม libxml2.dylib ในโปรเจ็กต์ของคุณ (อย่าใส่ไว้ในส่วน Frameworks) ใน Mac คุณจะพบได้ที่/usr/lib/libxml2.dylib
และสำหรับ iPhone คุณจะต้องใช้/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS2.0.sdk/usr/lib/libxml2.dylib
เวอร์ชันนั้น
เนื่องจาก libxml2 เป็น. dylib (ไม่ใช่. เฟรมเวิร์คที่เป็นมิตรที่ดี) เรายังมีอีกสิ่งหนึ่งที่ต้องทำ ไปที่การตั้งค่าการสร้างโครงการ ( Project->Edit Project Settings->Build
) และค้นหา " Search Paths
" ใน "เส้นทางการค้นหาส่วนหัว" ให้เพิ่มเส้นทางต่อไปนี้บนเครื่อง Mac:
/usr/include/libxml2
Ray Wenderlich มีบล็อกโพสต์เกี่ยวกับการใช้ gdata ที่ช่วยแก้ปัญหานี้ โดยทั่วไปขั้นตอนง่ายๆเหล่านี้:
ใน XCode ให้คลิก Project \ Edit Project Settings และตรวจสอบว่าได้เลือก "All Configurations" แล้ว
ค้นหาการตั้งค่า Search Paths \ Header Search Paths และเพิ่ม / usr / include / libxml2 ลงในรายการ
สุดท้ายค้นหาส่วน Linking \ Other Linker Flags และเพิ่ม -lxml2 ลงในรายการ
โพสต์ต้นฉบับ: อ่านและเขียนเอกสาร xml ด้วย gdataxml
ฉันพบสิ่งเดียวกันฉันต้องเพิ่ม $ (SDKROOT) / usr / include / libxml2 สำหรับ Xcode ล่าสุด (4.3.x) นอกจากนี้สิ่งที่ทำให้ฉันวนเวียนอยู่หลายชั่วโมงก็คือความจริงที่ว่าฉันกำลังแก้ไข "เป้าหมาย" ไม่ใช่ "โครงการ" (UI ใหม่ของ Xcode ซับซ้อนมากจนมองข้ามสิ่งนี้ไปได้ง่าย) คุณต้องแก้ไขโครงการ!
อีกวิธีหนึ่ง ทำตามขั้นตอนทั้งหมดในเส้นทางการค้นหาส่วนหัวเป็นต้นและตรวจสอบให้แน่ใจว่าการกำหนดค่าที่คุณเลือกในโครงการในการตั้งค่าโครงการนั้นถูกต้อง เมื่อคุณดับเบิลคลิกที่การตั้งค่าการสร้างโครงการคุณอาจกำลังเปลี่ยนแปลงในการตั้งค่าการแจกจ่าย แต่คุณกำลังพยายามเพิ่มเส้นทางการค้นหาส่วนหัวในการตั้งค่า "แก้ไขข้อบกพร่อง" ดังนั้นให้แน่ใจว่าคุณอยู่ในการตั้งค่าที่ถูกต้อง หรือเลือกการตั้งค่าทั้งหมด
ฉันพบว่าด้วย xCode 4.3.2 ฉันต้องป้อน $ (SDKROOT) / usr / include / libxml2 ลงในช่อง Header Search แทนที่จะเป็นเพียง / usr / include / libxml2
ในฐานะของ Mavericks (OS X 10.9) / usr / include ไดเรกทอรีจะหายไป ครึ่งหนึ่งของคำตอบที่นี่ล้าสมัยเนื่องจากแอปพลิเคชันจะไม่รวบรวมจนกว่าคุณจะจัดเรียงไดเรกทอรีรวม
ฉันแก้ไขปัญหาในการสร้างลิงก์สัญลักษณ์ไปยัง MacOSX SDK ในเทอร์มินัลโดยใช้คำสั่งต่อไปนี้:
sudo ln -s /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include /usr/include
ขณะนี้แอปพลิเคชันรวบรวมอีกครั้ง
ฉันไม่แน่ใจว่าความแตกต่างคืออะไร แต่เพิ่มเส้นทางรวมไปยังโปรเจ็กต์และเป้าหมาย
บน Mountain Lion ฉันประสบปัญหาเดียวกันซึ่งได้รับการแก้ไขโดยการเพิ่ม/usr/include/libxml2
เพื่อรวมเส้นทางที่มีธง "เรียกซ้ำ" ให้ใช้สิ่งนี้หากทั้งหมดข้างต้นไม่เกิดผล
ฉันมีปัญหานี้เมื่อเปิดโปรเจ็กต์อีกครั้ง (ซึ่งพัฒนาบน XCode 3 บางอย่างบน Leopard) หลังจากอัปเกรดเป็น Snow Leopard และ XCode 3.2 อยากรู้อยากเห็นมันส่งผลกระทบต่อการสร้างบางประเภทเท่านั้น (การจำลองการสร้างไปได้ดีอุปกรณ์ทำให้ฉันเกิดข้อผิดพลาด) และฉันมี libxml2 ที่ / usr / include และมันมี libxml / tree.h
แม้แต่เวทมนตร์ "Clean" ก็ใช้ไม่ได้แต่ "Empty Caches ... " ภายใต้เมนู "XCode" (ระหว่างโลโก้ Apple และ File) ก็ใช้เคล็ดลับ (เมนูนั้นมีในเวอร์ชันก่อนหน้าหรือไม่) เอาชนะฉันด้วยเหตุผล แต่หลังจากทำความสะอาดแล้วก็ไม่มีข้อร้องเรียนเกี่ยวกับ libxml / tree.h อีกต่อไป
เลือก "ค้นหาเส้นทางของผู้ใช้เสมอ" เป็นใช่ ใน XCode 4.3.3 เป็นค่าเริ่มต้น NO
โปรดปฏิบัติตามขั้นตอนต่อไปนี้
การเพิ่ม libxml2
libxml2.dylib สามารถพบได้ในเครื่อง mac ของคุณที่ /usr/lib/libxml2.dylib
เปลี่ยน "เส้นทางการค้นหาส่วนหัว"
คลิกที่ [ชื่อโครงการ] (ในแผงด้านซ้าย) -> โครงการ -> การตั้งค่าการสร้าง -> เลือกทั้งหมด (ค่าเริ่มต้นคือพื้นฐาน)
พิมพ์เส้นทางการค้นหาส่วนหัวในช่องค้นหา
ดับเบิลคลิกที่เส้นทางการค้นหาส่วนหัว -> + - > "$ (SDKROOT) / usr / include / libxml2"
เพิ่ม -lxml2 ไปที่ "Other linker flag"
ค้นหา "Other Linker Flags" ตามที่ค้นหาในขั้นตอนที่ 2
คลิกที่แถว "Other Linker Flags" คลิกปุ่ม "+" และเพิ่ม "-lxml2" ในรายการ
เปลี่ยนประเภทโครงการของคุณเป็น ARC -> ไม่ใช่เช่นการนับการอ้างอิงอัตโนมัติเป็นไม่ใช่คุณสามารถค้นหา ARC ได้ตามในขั้นตอนที่ 2
Xcode 4.5 ฉันใช้โซลูชันของ CW ทั้งหมดแล้ว ข้อยกเว้นประการเดียวคือ $ (SDKROOT) / usr / include / libxml2 ใช้ไม่ได้สำหรับฉันและฉันต้องเพิ่ม"$ (SDK_DIR)" / usr / include / libxml2 ไปยังเส้นทางการค้นหาส่วนหัวของโครงการและเส้นทางการค้นหาส่วนหัวของผู้ใช้ . หลังจากนั้นโครงการสร้างสำเร็จ
แก้ไข: ฉันมีโครงการ Google GData ในโครงการของฉัน (เรียกว่า MyProject) (โครงการของฉันใช้) GData ต้องการ libxml เพื่อสร้าง MyProject โครงการประสบความสำเร็จฉันจะเพิ่ม "$ (SDK_DIR)" / usr / รวม / libxml2 เพื่อค้นหาเส้นทางส่วนหัวของ MyProject และไม่มีส่วนหัวค้นหาเส้นทางของ GData ถ้าฉันไม่ได้เพิ่มลงใน MyProject โครงการไม่ได้สร้าง )
ฉันพบว่าบทแนะนำแบบภาพนี้มีประโยชน์
Blockquote การเพิ่ม libxml2 ใน Xcode 4.3.x
การเพิ่ม libxml2 เป็นความเจ็บปวดที่ใหญ่โตอ้วนและจู้จี้จุกจิกในตูด หากคุณกำลังจะทำก่อนที่จะสร้างโครงการของคุณมากเกินไป
นี่คือวิธีการ
การตั้งค่าเป้าหมาย
คลิกที่เป้าหมายของคุณ (ไม่ใช่โครงการของคุณ) และเลือก "ขั้นตอนการสร้าง" คลิกที่สามเหลี่ยมเปิดเผยชื่อ "เชื่อมโยงไบนารีกับไลบรารี" คลิกที่ "+" เพื่อเพิ่มห้องสมุด เลื่อนไปที่ด้านล่างสุดของรายการและเลือก "libxml2.dylib" นั่นเป็นการเพิ่มไลบรารี libxml2 2 โครงการของคุณ ... แต่เดี๋ยวก่อน
การตั้งค่าโครงการ
ตอนนี้คุณต้องบอกโครงการของคุณว่าจะหาที่ไหนอีกสามครั้ง
เลือกแท็บ "Build Settings" เลื่อนลงไปที่ส่วน "การเชื่อมโยง" ภายใต้คอลัมน์ของโครงการของคุณให้ดับเบิลคลิกที่แถว "อื่น ๆ Linker Flags" คลิกปุ่ม "+" และเพิ่ม "-lxml2" ในรายการ
ยังมีอีกมาก
ในแท็บเดียวกันให้เลื่อนลงไปที่ส่วน "เส้นทางการค้นหา" ใต้คอลัมน์ของโครงการของคุณในแถว "Framework Search Paths" ให้เพิ่ม "/usr/lib/libxml2.dylib"
ใน "Header Search Paths" และแถว "User Header Search Paths" ให้เพิ่ม "$ (SDKROOT) / usr / include / libxml2" ในสองกรณีสุดท้ายตรวจสอบให้แน่ใจว่าได้ป้อนเส้นทางใน Debug AND Release
แล้ว. ภายใต้เมนู "ผลิตภัณฑ์" ให้เลือก "ทำความสะอาด"
ใช้งานได้และสำหรับ Xcode5 ด้วย! ขอบคุณ!
อย่าใส่ libxml2.dylib ไว้ใต้โฟลเดอร์ framework โดยวางไว้ใต้รูทด้านล่างรูท (ไอคอนสีฟ้าด้านซ้ายบน)
จากนั้นคลิกที่โครงการ (ไอคอนด้านบนซ้ายสีฟ้า) ไปที่การตั้งค่าการสร้างในช่องค้นหาพิมพ์ "เส้นทางการค้นหาส่วนหัว" จากนั้นเพิ่ม "$ (SDKROOT) / usr / include / libxml2"
รหัสนี้ช่วยแก้ปัญหาของฉันหวังว่าจะช่วยคุณแก้ไขปัญหานี้ได้
@Aqib Mumtaz - ฉันใช้งานได้โดยทำตามคำแนะนำในบันทึกของ Parris ด้านบนที่มีชื่อว่า "การเพิ่ม libxml2 ใน Xcode 4.3 / 5/6" ขั้นตอนในการใช้ Framework Search Path ไม่ทำงานและคอมไพเลอร์บ่น ความรุ่งโรจน์ครั้งใหญ่สำหรับผู้หญิงคนนั้นอยู่ดี!
ฉันใช้ Xcode 6.2b3
ไม่ว่าคุณจะใช้ Xcode เวอร์ชันใดมันก็เป็นบั๊กกี้ อย่าคิดเสมอว่าข้อผิดพลาดในการคอมไพล์เป็นเรื่องจริง มีหลายครั้งที่ไม่เป็นไปตามเส้นทางการค้นหาส่วนหัวและไม่พบรายการที่ระบุไว้อย่างชัดเจน ที่แย่กว่านั้นข้อผิดพลาดที่เกิดขึ้นมักจะชี้คุณไปในทิศทางที่ต่างกันดังนั้นคุณจึงเสียเวลาไปกับการคิดฟุ้งซ่าน ด้วยที่กล่าวว่า ...
แนะนำขั้นตอนของทารกโดยเริ่มจากสิ่งนี้ ... :
หมายเหตุ:
หวังว่านี่จะช่วยได้
หากคุณกำลังพัฒนาบางสิ่งสำหรับทหารผ่านศึกโอ้พูดว่าแอป iPhone / iPad หรือ Mac และกำลังทำงานกับสิ่งที่เรียกว่า "MDWS" หรือ "VIA" ซึ่งเป็นอินเทอร์เฟซ SOAP ของระบบเวชระเบียน ... โปรดติดต่อฉัน
1) ฉันเพิ่มไฟล์ libxml ไปยัง Build Phases ตามลิงค์นี้
2) ฉันเพิ่มธง Linker อื่นเป็น-ObjC
(สำหรับทั้งโครงการและเป้าหมายโครงการทดสอบ)
3) ฉันตั้งค่าเส้นทางการค้นหาส่วนหัวเป็น"${SDKROOT}/usr/include/libxml2"
(อย่าลืมเครื่องหมายคำพูดคู่ในด้านใดด้านหนึ่ง) (สำหรับทั้งโครงการและเป้าหมายโครงการทดสอบ)
หนึ่งในนั้นจะช่วยแก้ปัญหาได้ ถ้าไม่คุณต้องใช้ทั้งสามข้อข้างต้น
ฉันคิดว่าฉันเพิ่มผิดแล้วฉันรู้ว่าปัญหาคือมันไม่รองรับส่วนโค้งดังนั้นตรวจสอบการสนับสนุนที่นี่ตัวช่วยชีวิต -> http://www.michaelbabiy.com/arc-compliant-gdataxml-library/