Я отримую наступні помилки.
libxml / tree.h немає такого файлу чи каталогу
Я вже додав libxml2.dylib
свій проект, однак у мене виникають такі проблеми. Будь ласка, допоможи мені.
Я отримую наступні помилки.
libxml / tree.h немає такого файлу чи каталогу
Я вже додав libxml2.dylib
свій проект, однак у мене виникають такі проблеми. Будь ласка, допоможи мені.
Відповіді:
Дотримуйтесь інструкцій тут , в розділі «Налаштування файлу проекту.»
Налаштування файлу проекту
Вам потрібно додати libxml2.dylib до свого проекту (не розміщуйте його в розділі Frameworks). На Mac ви знайдете його на
/usr/lib/libxml2.dylib
iPhone, а для iPhone - вам потрібна/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.0.sdk/usr/lib/libxml2.dylib
версія.Оскільки libxml2 - це .dylib (не дуже приємна .framework), у нас ще є ще одна справа. Перейдіть до налаштувань збірки проекту (Project-> Edit Settings Project-> Build) та знайдіть «Шляхи пошуку». У "Шляхи пошуку в заголовку" додайте такий шлях:
$(SDKROOT)/usr/include/libxml2
Також дивіться відповідь ОП .
/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
.
У цих останніх двох випадках переконайтеся, що введено шлях у налагодження та випуск.
Під Product
меню виберіть Clean
.
Тоді, якби я був ти (і дозволив зіткнутися з цим, я, мабуть, є), я б кинув Xcode і пішов геть. Коли ти повернешся і запустиш, ти повинен бути гарним.
opening import file 'Swift.swift': Not a directory
після цього в Xcode 5.
1) додати бібліотеку "libxml2.dylib" до цілі мого проекту (фази збірки -> посилання бінарних із бібліотеками)
2) додайте "$ (SDKROOT) / usr / include / libxml2" до Шляхів пошуку заголовків на TARGET (Налаштування збірки -> Шляхи пошуку заголовка)
Після цього ціль повинна успішно будуватися.
Вам також потрібно додати /usr/include/libxml2
до шляху включення.
Створіть посилання @Matt Ball,
Я знайшов наступні корисні для мене.
Вам потрібно додати libxml2.dylib до свого проекту (не розміщуйте його в розділі Frameworks). На Mac ви знайдете його на /usr/lib/libxml2.dylib
iPhone, а для iPhone - вам потрібна /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS2.0.sdk/usr/lib/libxml2.dylib
версія.
Оскільки libxml2 - це .dylib (не дуже приємна .framework), у нас ще є ще одна справа. Перейдіть до налаштувань збірки проекту ( Project->Edit Project Settings->Build
) та знайдіть " Search Paths
". У "Шляхи пошуку в заголовку" додайте наступний шлях на Mac:
/usr/include/libxml2
У Рея Вендерліха є повідомлення в блозі про використання гдата, яка вирішує цю проблему. В основному ці прості кроки:
У XCode натисніть Проект \ Редагувати параметри проекту та переконайтесь, що "Усі конфігурації" встановлено.
Знайдіть налаштування Шляхів пошуку \ Заголовок Шляхів пошуку та додайте / usr / include / libxml2 до списку.
Нарешті, знайдіть розділ Зв’язування \ Інші прапорці Linker та додайте -lxml2 до списку.
оригінальна публікація: читати та писати xml документи за допомогою gdataxml
Я знайшов те саме, що мені довелося додати $ (SDKROOT) / usr / include / libxml2 для останнього Xcode (4.3.x). ТАКОЖ, те, що змусило мене кружляти довгі години, - це те, що я змінював "TARGET", а не "PROJECT" (новий інтерфейс Xcode настільки складний, що його легко не помітити). Вам потрібно змінити ПРОЕКТ!
Ще одне рішення. виконайте всі кроки в шляху пошуку в заголовку тощо і переконайтесь, що вибрана конфігурація проекту в налаштуваннях проекту є правильною. Якщо ви двічі клацніть на налаштуваннях побудови проекту, ви можете змінюватись у налаштуваннях дистрибуції, але ви намагаєтесь додати шлях пошуку в заголовку в налаштуваннях «Налагодження». Тому переконайтеся, що ви правильні. або виберіть усі налаштування
Станом на 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
щоб включити доріжки із прапором "рекурсивні", використовувати це, якщо все вище не є плідним.
У мене виникла ця проблема, коли я знову відкрив проект (розроблений на XCode 3.something на Leopard) після оновлення до Snow Leopard та XCode 3.2. Досить цікаво, це вплинуло лише на деякі види збірок (збірки емуляторів вийшли нормально, пристрої дали мені помилку). І у мене є libxml2 в / usr / include, і він дійсно містить libxml / tree.h.
Навіть магія "Очистити" не спрацювала, але "Порожні кеші ..." в меню "XCode" (між логотипом Apple і File) зробили трюк (чи було це меню в попередніх версіях?). Бій мене за причину, але після чистої не було більше скарг щодо libxml / tree.h
Будь ласка, виконайте наступні кроки
Додавання libxml2
libxml2.dylib можна знайти на вашому комп'ютері Mac за адресою /usr/lib/libxml2.dylib
Змінення "Шляхи пошуку заголовків"
Клацніть на [Назва проекту] (на лівій панелі) -> Проект -> Налаштування збірки -> Виберіть усе (за замовчуванням є базовим)
Введіть Шляхи пошуку заголовків у вікні пошуку
Двічі клацніть на Шляхи пошуку заголовків -> + - > "$ (SDKROOT) / usr / include / libxml2"
Додайте -lxml2 до "Інший прапор лінкера".
Шукайте "Інші прапорці", як пошук на кроці 2,
натисніть на рядок "Інші прапорці". Клацніть "+" та додайте "-lxml2" до списку.
Змініть тип проекту на ARC -> Ні, тобто автоматичний підрахунок посилань на Ні. Ви можете шукати ARC, як описано в кроці 2
Xcode 4.5 Я використовував рішення CW повністю. Єдиним винятком є те, що $ (SDKROOT) / usr / include / libxml2 не працював для мене, і мені довелося додати "$ (SDK_DIR)" / usr / include / libxml2 до моїх шляхів пошуку заголовків проектів та шляхів пошуку в заголовку користувача . Після цього проект будується успішно.
EDIT: У мене в проекті Google GData (званий MyProject) (мій проект використовується). GData вимагає libxml. Щоб успішно створити проект MyProject, я додаю "$ (SDK_DIR)" / usr / include / libxml2 в Шляхи пошуку заголовків MyProject, а не в Шляхи пошуку заголовків GData . Якщо я не додав його до MyProject, проект не будувався ).
Я знайшов цей наочний посібник корисним.
Блок-котирування Додавання libxml2 у Xcode 4.3.x
Додавання libxml2 - це великий, жирний, вибагливий біль у попці. Якщо ви збираєтеся це зробити, зробіть це ще до того, як ви занадто далеко задумаєтесь над створенням свого проекту.
Ось як.
Налаштування цілей
Клацніть на вашу ціль (не ваш проект) та виберіть "Фази побудови". Клацніть на трикутник розкриття під назвою «Пов’язати бінарне з бібліотеками». Клацніть на "+", щоб додати бібліотеку. Прокрутіть до нижньої частини списку та виберіть "libxml2.dylib". Це додає бібліотеку libxml2 2 до вашого проекту ... але зачекайте.
Налаштування проекту
Тепер ви повинні сказати своєму проекту, де його шукати ще три рази.
Виберіть вкладку "Параметри побудови". Прокрутіть униз до розділу "Зв'язування". Під стовпцями вашого проекту двічі клацніть рядок "Інші прапорці". Клацніть "+" та додайте "-lxml2" до списку.
Ще більше.
На цій же вкладці прокрутіть униз до розділу "Шляхи пошуку". У стовпці вашого проекту в рядку "Рамкові шляхи пошуку" додайте "/usr/lib/libxml2.dylib".
У рядок "Шляхи пошуку заголовків" ТА "Шляхи пошуку заголовків користувачів" додайте "$ (SDKROOT) / usr / include / libxml2". У цих останніх двох випадках переконайтеся, що введено шлях у Налагодження І Випуск.
Тоді. У меню "Продукт" виберіть "Очистити".
Це працює і для Xcode5 теж! Дякую!
Не кладіть libxml2.dylib під папку фреймворків, покладіть його під корінь трохи нижче кореня (верхній лівий синій значок)
Потім натисніть на проект (верхній лівий синій значок), перейдіть до "Налаштування збірки", у полі пошуку введіть "Шляхи пошуку заголовків", а потім додайте цей "$ (SDKROOT) / usr / include / libxml2"
Цей код вирішує мою проблему, сподіваюся, що це допоможе вам виправити це
@Aqib Mumtaz - я працював над цим, дотримуючись інструкцій у примітці Парріса вище під назвою "Додавання libxml2 в Xcode 4.3 / 5/6". Крок використання траєкторії рамкового пошуку не працює, і компілятор скаржиться. Все одно великі кудо!
Я використовую Xcode 6.2b3
Незалежно від версії Xcode, яку ви використовуєте, вона баггі. Не завжди вважайте, що помилки компіляції справжні. Існує багато разів, коли він не дотримується шляхів пошуку в заголовку і включає чітко перелічені списки. Гірше, що помилки, що призводять до цього, як правило, вказують на вас у різні сторони, тому ви витрачаєте багато часу, курячи навколо, відволікаючись. З урахуванням сказаного ...
Рекомендуйте кроки дитини, починаючи саме з цього…:
Примітки:
сподіваюся, що це допомагає.
Якщо ви щось розробляєте для ветеранів, скажіть, додаток для iPhone / iPad або Mac, і ви працюєте проти чогось, що називається "MDWS" або "VIA", що є інтерфейсом на основі SOAP до системи медичних записів ..., будь ласка, зв'яжіться зі мною
1) Я додав файл libxml до фаз збірки. Перейдіть за цим посиланням
2) Я додав інші прапорці Linker як -ObjC
(Як для цілей проекту, так і для тестових проектів)
3) Я встановлюю Шлях пошуку в заголовку як "${SDKROOT}/usr/include/libxml2"
(Не забудьте подвійну цитату в обидві сторони) (І для цілей проекту, і для тестових проектів)
Один з них вирішить питання. Якщо ні, то вам не доведеться застосувати всі три вищезгадані.
Мені подобалось, що я додав неправильно, то я розумію, що проблема полягає в тому, що вона не підтримує дугу, тому перевірте підтримку тут, рятувальник життя -> http://www.michaelbabiy.com/arc-compliant-gdataxml-library/