libxml / tree.h ไม่มีไฟล์หรือไดเร็กทอรีดังกล่าว


100

ฉันได้รับข้อผิดพลาดต่อไปนี้

libxml / tree.h ไม่มีไฟล์หรือไดเร็กทอรีดังกล่าว

ฉันได้เพิ่มlibxml2.dylibในโครงการของฉันแล้ว แต่ฉันได้รับปัญหาประเภทนี้ โปรดช่วยฉันด้วย


2
เมื่อคุณบอกว่าคุณได้เพิ่มลงในโครงการของคุณแล้วคุณทำอะไรกันแน่? ฉันไม่คิดว่า XCode คิดว่ามันใช้งานได้
Devin Ceartas

1
หากคุณมีปัญหานี้ใน XCode 4.6 ไปที่นี่stackoverflow.com/questions/14622684/…
Boris Gafurov

อัปเดตภาพหน้าจอของคุณ
ผู้ใช้

คำตอบ:


213

ทำตามคำแนะนำที่นี่ภายใต้ "การตั้งค่าไฟล์โครงการของคุณ"

การตั้งค่าไฟล์โครงการของคุณ

คุณต้องเพิ่ม 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ด้วย


12
อย่าทำในสิ่งที่บอกเมื่อขอให้คุณเพิ่ม "/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS2.0.sdk/usr/include/libxml2" ลงในเส้นทางการค้นหาส่วนหัว เพิ่ม "/ usr / include / libxml2 แทนซึ่งทำให้โปรเจ็กต์ของคุณไม่ขึ้นอยู่กับ SDK เฉพาะ
cdespinosa

ใช้งานได้ตราบเท่าที่มี symlink อยู่ใน/usr/includeนั้นจริงๆ ฉันไม่ได้ลองติดตั้ง libxml2 ดังนั้นฉันจึงไม่สามารถยืนยันพฤติกรรมเริ่มต้นได้ แต่ใช่ว่าจะดีกว่ามากถ้าจะเชื่อมโยงแบบนั้น
Matt Ball

1
เมื่อพัฒนาภายใต้ XCode GCC จะใช้อ็อพชัน -isysroot ที่ย้ายรูทของ SDK หากคุณเพิ่ม / usr / include / libxml2 ในพา ธ การค้นหาส่วนหัวจะถูกแปลในเวลาคอมไพล์ไปยังโฟลเดอร์ usr / include / libxml2 ภายใน SDK ปัจจุบัน
Laurent Etiemble

เมื่อฉันตั้งค่า "$ (SDKROOT) / usr / include / libxml2" เป็น Header Search Path (XCode 4.2) มากกว่าที่ระบุว่า "_OBJC_METACLASS _ $ _ UIResponder" อ้างอิงจาก: _OBJC_METACLASS _ $ _ D2GAppDelegate ใน MyDemoAppDelegate ไม่พบสถาปัตยกรรม i386 " ฉันจะทำอะไรได้บ้าง?
NicTesla

1
เยี่ยมมาก ขอบคุณ. ฉันไม่มี '$ (SDKROOT)' ซึ่งสร้างปัญหา

86

การเพิ่ม libxml2 ใน Xcode 4.3 / 5/6

การเพิ่ม libxml2 เป็นความเจ็บปวดที่ใหญ่โตอ้วนและจู้จี้จุกจิกในตูด หากคุณกำลังจะทำให้ทำก่อนที่จะสร้างโครงการของคุณมากเกินไป


คุณต้องเพิ่มสองวิธี :

1. การตั้งค่าเป้าหมาย

คลิกที่เป้าหมายของคุณ (ไม่ใช่โครงการของคุณ) Build Phasesและเลือก

คลิกที่สามเหลี่ยมเปิดเผยLink Binary With Librariesชื่อ คลิก+เพื่อเพิ่มไลบรารี

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

2. การตั้งค่าโครงการ

ตอนนี้คุณต้องบอกโครงการของคุณว่าจะหาที่ไหนอีกสามครั้ง

เลือกไฟล์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

3. ทำความสะอาด

ภายใต้เมนูเลือกProductClean

จากนั้นถ้าฉันเป็นคุณ (และยอมเผชิญหน้ากับมันฉันก็คงเป็น) ฉันจะออกจาก Xcode และเดินจากไป เมื่อคุณกลับมาและเปิดตัวคุณควรจะไป


ขอบคุณนี่เป็นทางออกเดียวที่ใช้ได้กับฉันกับ Xcode 4.3.3
lifjoy

1
คำแนะนำทีละขั้นตอนเหล่านี้เป็นเพียงครั้งเดียวที่ใช้ได้ผลสำหรับฉัน (Xcode 4.4.1) ขอบคุณ!
Frank

ทำงานให้ฉันโดยไม่ได้กำหนดเส้นทางการค้นหา Framework ใน Xcode 4.1.1
Richard Garside

1
opening import file 'Swift.swift': Not a directoryหลังจากทำสิ่งนี้ใน Xcode 5.
ผู้ใช้

1
ฉันยังได้รับข้อผิดพลาด "กำลังเปิดไฟล์นำเข้าสำหรับโมดูล 'Swift': ไม่ใช่ไดเรกทอรี" ในการแก้ไขปัญหานี้อย่าเพิ่ม "/usr/lib/libxml2.dylib" ใน "Framework Search Paths" ยังคงใช้งานได้สำหรับฉันหลังจากที่ฉันละเลยขั้นตอนนั้น
Daniel Ryan

22

สำหรับ Xcode 6 ฉันต้องทำสิ่งต่อไปนี้:

1) เพิ่มไลบรารี "libxml2.dylib" ลงใน TARGET ของโปรเจ็กต์ของฉัน (สร้างเฟส -> เชื่อมโยงไบนารีกับไลบรารี)

2) เพิ่ม "$ (SDKROOT) / usr / include / libxml2" ในเส้นทางการค้นหาส่วนหัวบน TARGET (การตั้งค่าการสร้าง -> เส้นทางการค้นหาส่วนหัว)

หลังจากนี้เป้าหมายควรสร้างสำเร็จ


เหตุผลใดที่ทำให้ / usr / include / libxml2 ในการตั้งค่าโปรเจ็กต์ไม่ทำงาน
Paul Brewczynski


11

สร้างลิงค์ของ @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 

11

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


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

7

ฉันพบสิ่งเดียวกันฉันต้องเพิ่ม $ (SDKROOT) / usr / include / libxml2 สำหรับ Xcode ล่าสุด (4.3.x) นอกจากนี้สิ่งที่ทำให้ฉันวนเวียนอยู่หลายชั่วโมงก็คือความจริงที่ว่าฉันกำลังแก้ไข "เป้าหมาย" ไม่ใช่ "โครงการ" (UI ใหม่ของ Xcode ซับซ้อนมากจนมองข้ามสิ่งนี้ไปได้ง่าย) คุณต้องแก้ไขโครงการ!


5

อีกวิธีหนึ่ง ทำตามขั้นตอนทั้งหมดในเส้นทางการค้นหาส่วนหัวเป็นต้นและตรวจสอบให้แน่ใจว่าการกำหนดค่าที่คุณเลือกในโครงการในการตั้งค่าโครงการนั้นถูกต้อง เมื่อคุณดับเบิลคลิกที่การตั้งค่าการสร้างโครงการคุณอาจกำลังเปลี่ยนแปลงในการตั้งค่าการแจกจ่าย แต่คุณกำลังพยายามเพิ่มเส้นทางการค้นหาส่วนหัวในการตั้งค่า "แก้ไขข้อบกพร่อง" ดังนั้นให้แน่ใจว่าคุณอยู่ในการตั้งค่าที่ถูกต้อง หรือเลือกการตั้งค่าทั้งหมด


4

ฉันพบว่าด้วย xCode 4.3.2 ฉันต้องป้อน $ (SDKROOT) / usr / include / libxml2 ลงในช่อง Header Search แทนที่จะเป็นเพียง / usr / include / libxml2


4

ในฐานะของ 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

ขณะนี้แอปพลิเคชันรวบรวมอีกครั้ง


สิ่งที่ฉันกำลังมองหา การทำงานนี้สมบูรณ์แบบ เพียงตรวจสอบให้แน่ใจในเส้นทางการค้นหาส่วนหัวของคุณที่คุณใส่ / usr / include / libxml2
Josh Bernfeld

3

ฉันไม่แน่ใจว่าความแตกต่างคืออะไร แต่เพิ่มเส้นทางรวมไปยังโปรเจ็กต์และเป้าหมาย


3

บน Mountain Lion ฉันประสบปัญหาเดียวกันซึ่งได้รับการแก้ไขโดยการเพิ่ม/usr/include/libxml2เพื่อรวมเส้นทางที่มีธง "เรียกซ้ำ" ให้ใช้สิ่งนี้หากทั้งหมดข้างต้นไม่เกิดผล


2

ฉันมีปัญหานี้เมื่อเปิดโปรเจ็กต์อีกครั้ง (ซึ่งพัฒนาบน XCode 3 บางอย่างบน Leopard) หลังจากอัปเกรดเป็น Snow Leopard และ XCode 3.2 อยากรู้อยากเห็นมันส่งผลกระทบต่อการสร้างบางประเภทเท่านั้น (การจำลองการสร้างไปได้ดีอุปกรณ์ทำให้ฉันเกิดข้อผิดพลาด) และฉันมี libxml2 ที่ / usr / include และมันมี libxml / tree.h

แม้แต่เวทมนตร์ "Clean" ก็ใช้ไม่ได้แต่ "Empty Caches ... " ภายใต้เมนู "XCode" (ระหว่างโลโก้ Apple และ File) ก็ใช้เคล็ดลับ (เมนูนั้นมีในเวอร์ชันก่อนหน้าหรือไม่) เอาชนะฉันด้วยเหตุผล แต่หลังจากทำความสะอาดแล้วก็ไม่มีข้อร้องเรียนเกี่ยวกับ libxml / tree.h อีกต่อไป


2

เลือก "ค้นหาเส้นทางของผู้ใช้เสมอ" เป็นใช่ ใน XCode 4.3.3 เป็นค่าเริ่มต้น NO


2

โปรดปฏิบัติตามขั้นตอนต่อไปนี้

  1. การเพิ่ม libxml2
    libxml2.dylib สามารถพบได้ในเครื่อง mac ของคุณที่ /usr/lib/libxml2.dylib

  2. เปลี่ยน "เส้นทางการค้นหาส่วนหัว"
    คลิกที่ [ชื่อโครงการ] (ในแผงด้านซ้าย) -> โครงการ -> การตั้งค่าการสร้าง -> เลือกทั้งหมด (ค่าเริ่มต้นคือพื้นฐาน)
    พิมพ์เส้นทางการค้นหาส่วนหัวในช่องค้นหา
    ดับเบิลคลิกที่เส้นทางการค้นหาส่วนหัว -> + - > "$ (SDKROOT) / usr / include / libxml2"

  3. เพิ่ม -lxml2 ไปที่ "Other linker flag"
    ค้นหา "Other Linker Flags" ตามที่ค้นหาในขั้นตอนที่ 2
    คลิกที่แถว "Other Linker Flags" คลิกปุ่ม "+" และเพิ่ม "-lxml2" ในรายการ

  4. เปลี่ยนประเภทโครงการของคุณเป็น ARC -> ไม่ใช่เช่นการนับการอ้างอิงอัตโนมัติเป็นไม่ใช่คุณสามารถค้นหา ARC ได้ตามในขั้นตอนที่ 2


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 โครงการไม่ได้สร้าง )



1

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 ด้วย! ขอบคุณ!


1
สิ่งนี้ไม่ทำงานใน Xcode 5.0.2 ฉันได้ทำการเปลี่ยนแปลงโครงการข้างต้น แต่โชคไม่ดี คุณช่วยฉันได้ไหมว่าต้องทำอะไร
พระพิฆเนศ

1

อย่าใส่ libxml2.dylib ไว้ใต้โฟลเดอร์ framework โดยวางไว้ใต้รูทด้านล่างรูท (ไอคอนสีฟ้าด้านซ้ายบน)

จากนั้นคลิกที่โครงการ (ไอคอนด้านบนซ้ายสีฟ้า) ไปที่การตั้งค่าการสร้างในช่องค้นหาพิมพ์ "เส้นทางการค้นหาส่วนหัว" จากนั้นเพิ่ม "$ (SDKROOT) / usr / include / libxml2"

รหัสนี้ช่วยแก้ปัญหาของฉันหวังว่าจะช่วยคุณแก้ไขปัญหานี้ได้


1

@Aqib Mumtaz - ฉันใช้งานได้โดยทำตามคำแนะนำในบันทึกของ Parris ด้านบนที่มีชื่อว่า "การเพิ่ม libxml2 ใน Xcode 4.3 / 5/6" ขั้นตอนในการใช้ Framework Search Path ไม่ทำงานและคอมไพเลอร์บ่น ความรุ่งโรจน์ครั้งใหญ่สำหรับผู้หญิงคนนั้นอยู่ดี!

ฉันใช้ Xcode 6.2b3

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

แนะนำขั้นตอนของทารกโดยเริ่มจากสิ่งนี้ ... :

  1. สร้างโครงการ Mac OS X Cocoa แบบหน้าต่างเดียวที่เรียกว่า "Bench Test"
  2. เพิ่ม XpathQuery ลงในไดเร็กทอรีต้นทางของโปรเจ็กต์โดยตรงใน Finder
  3. คลิกที่ไอคอนโฟลเดอร์เล็ก ๆ ใต้ปุ่มปิดสีแดงของหน้าต่างโครงการ
  4. ลาก XpathQuery (โฟลเดอร์ถ้าคุณมี) ลงในเนื้อหาโครงการทางด้านซ้ายของการแสดงหน้าต่างโครงการ
  5. ลาก /Applications/Xcode/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/usr/lib/libxml2.2.dylib ลงในสินทรัพย์โครงการของคุณที่ด้านล่าง สิ่งนี้จะเพิ่มลงใน "ขั้นตอนการสร้าง" -> "เชื่อมโยงไบนารีกับไลบรารี" ด้วยวิธีง่ายๆ
  6. คลิกไอคอนโครงการ "Bench Test" ในคอลัมน์เนื้อหาโครงการด้านบนสุดของด้านซ้าย
  7. ค้นหา "Other Linker Flags" ภายใต้ "Build Settings"
  8. เพิ่ม "-lxml2" (sans "") ใน "Other Linker Flags" ภายใต้คอลัมน์ไอคอนโครงการ "Bench Test"
  9. ค้นหา "header search" ภายใต้ "Build Settings"
  10. เพิ่ม "$ (SDKROOT) / usr / include / libxml2" (sans "") ลงใน "Header Search Paths" ภายใต้คอลัมน์ไอคอนโครงการ "Bench Test"
  11. เพิ่ม "$ (SDKROOT) / usr / include / libxml2" (sans "") ใน "User Header Search Paths" ในคอลัมน์ไอคอนโครงการ "Bench Test"

หมายเหตุ:

  • ของฉันจะใช้ไม่ได้จนกว่าฉันจะเพิ่มเส้นทางการค้นหานั้นลงใน "เส้นทางการค้นหาส่วนหัว" และ "เส้นทางการค้นหาส่วนหัวของผู้ใช้"
  • หากต้องการไปที่ libxml2.2.dylib ในตัวค้นหาคุณจะต้องคลิกขวาที่ไอคอน Xcode ของคุณแล้วเลือก "แสดงรายชื่อแพ็กเกจ" (บทบรรณาธิการ: แฮ็คอะไรกัน .. ยัดขยะทั้งหมดลงในแอป)
  • เตรียมพร้อมที่จะเปลี่ยน libxml2.2.dylib ที่เชื่อมโยง หนึ่งใน Xcodeถูกใช้โดยเจตนาเพื่อให้แน่ใจว่า Xcode ได้รับบางสิ่งที่มันรู้และในทางทฤษฎีได้รับการทดสอบ คุณอาจต้องการใช้ dylib ในระบบในภายหลัง (อ่านในหัวข้อนี้)
  • ขณะที่ฉันใช้ Xcode 6.2b3 ฉันอาจมี libxml2.2.dylib ที่ใหม่กว่า ของคุณอาจมีชื่อแตกต่างกันเล็กน้อย เพียงค้นหาสิ่งที่ขึ้นต้นด้วย "libxml" ในโฟลเดอร์และลงท้ายด้วย ".dylib" เท่านี้ก็ควรจะเป็น นอกจากนี้ยังอาจมีนามแฝงเช่น "libxml2.dylib" อย่าใช้สิ่งนั้นทันทีเนื่องจากการแก้นามแฝงจะเพิ่มตัวแปรอื่นเข้าไปในสมการ "สิ่งที่อาจมีจุดบกพร่อง" ของ Xcode
  • เพื่อความปลอดภัยฉันสร้างนามแฝงของไลบรารีภายนอกเปลี่ยนชื่อเพื่อระบุว่าเป็นไลบรารีใดและเก็บไว้ในระดับเดียวกับไฟล์โครงการใน Finder หากพวกเขาเปลี่ยนตำแหน่งเปลี่ยนชื่อ ฯลฯ นามแฝงจะอยู่ใน Get Info ซึ่งเป็นเส้นทางแบบเต็มของไฟล์ต้นฉบับสำหรับการทำงานของนักสืบในภายหลังเพื่อรวบรวมโปรเจ็กต์และเชื่อมโยงอีกครั้ง (symlinks พังง่ายเกินไปและไม่เป็นธรรมชาติสำหรับ Mac)
  • สิ่งสุดท้ายและสำคัญมากโปรดดูที่http://www.cocoawithlove.com/2008/10/using-libxml2-for-parsing-and-xpath.htmlซึ่งคุณสามารถดาวน์โหลด XpathQuery และรับสิ่งดีๆเพิ่มเติมได้

หวังว่านี่จะช่วยได้

หากคุณกำลังพัฒนาบางสิ่งสำหรับทหารผ่านศึกโอ้พูดว่าแอป iPhone / iPad หรือ Mac และกำลังทำงานกับสิ่งที่เรียกว่า "MDWS" หรือ "VIA" ซึ่งเป็นอินเทอร์เฟซ SOAP ของระบบเวชระเบียน ... โปรดติดต่อฉัน


0

ฉันแก้ไขในสามขั้นตอนในโครงการ Xcode 8.0 + Unit Test

1) ฉันเพิ่มไฟล์ libxml ไปยัง Build Phases ตามลิงค์นี้

2) ฉันเพิ่มธง Linker อื่นเป็น-ObjC(สำหรับทั้งโครงการและเป้าหมายโครงการทดสอบ)

3) ฉันตั้งค่าเส้นทางการค้นหาส่วนหัวเป็น"${SDKROOT}/usr/include/libxml2"(อย่าลืมเครื่องหมายคำพูดคู่ในด้านใดด้านหนึ่ง) (สำหรับทั้งโครงการและเป้าหมายโครงการทดสอบ)

หนึ่งในนั้นจะช่วยแก้ปัญหาได้ ถ้าไม่คุณต้องใช้ทั้งสามข้อข้างต้น


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