Libxml/tree.h нет такого файла или каталога

Я получаю следующие ошибки.

libxml/tree.h нет такого файла или каталога

Я уже добавил libxml2.dylib в свой проект, однако у меня возникают такие проблемы. Пожалуйста, помогите мне.

Ответ 1

Следуйте указаниям здесь в разделе "Настройка файла проекта".

Настройка файла проекта

Вам нужно добавить libxml2.dylib в свой проект (не помещайте его в раздел "Ракурсы" ). На Mac, вы найдете его в /usr/lib/libxml2.dylib, а для iPhone вы будете хотеть /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.0.sdk/usr/lib/libxml2.dylibверсия.

Так как libxml2 является .dylib(не очень дружественным .framework), мы все равно есть еще одно дело. Перейти к настройкам сборки проекта (Project- > Edit Project Settings- > Build) и найдите "Пути поиска". В "Пути поиска заголовков" добавьте следующий путь:

$(SDKROOT)/usr/include/libxml2

Также см. ответ OP.

Ответ 2

Добавление 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. Clean

В меню Product выберите Clean.

Тогда, если бы я был вами (и давайте посмотрим правде в глаза, я, вероятно,), я бы оставил Xcode и ушел. Когда вы вернетесь и начнете, вам должно быть хорошо идти.

Ответ 3

Для Xcode 6 мне пришлось сделать следующее:

1) добавьте библиотеку libxml2.dylib в мой проект TARGET (Build Phases → Link Binary With Libraries)

2) добавьте "$ (SDKROOT)/usr/include/libxml2" в пути поиска заголовков в TARGET (параметры сборки → пути поиска заголовков)

После этого цель должна успешно сработать.

Ответ 4

Вам также нужно добавить /usr/include/libxml2 к вашему пути include.

Ответ 5

Составьте ссылку @Matt Ball,

Я нашел следующее полезное для меня.

Вам нужно добавить libxml2.dylib в свой проект (не помещайте его в раздел "Ракурсы" ). На Mac вы найдете его в /usr/lib/libxml2.dylib, а для 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 

Ответ 6

У Ray Wenderlich есть сообщение в блоге об использовании gdata, которая решает эту проблему. В основном эти простые шаги:

В XCode выберите Project\Edit Project Settings и убедитесь, что отмечены флажки "Все конфигурации".

Найдите пути "Пути поиска" / "Пути поиска заголовков" и добавьте в список /usr/include/libxml 2.

Наконец, найдите раздел Linking\Other Linker Flags и добавьте -lxml2 в список.

оригинальное сообщение: читать и писать xml-документы с помощью gdataxml

Ответ 7

Я нашел то же самое, мне пришлось добавить $(SDKROOT)/usr/include/libxml2 для последнего Xcode (4.3.x). ТАКЖЕ, что заставляло меня крутиться вокруг часами, это факт, что я изменял "TARGET", а не "ПРОЕКТ" (новый интерфейс Xcode настолько сложный, что его легко упускать из виду). Вам нужно изменить PROJECT!

Ответ 8

Другое решение. выполните все шаги в пути поиска заголовков и т.д. и убедитесь, что выбранная вами конфигурация в проекте в настройках проекта является правильной. Когда вы дважды щелкаете по настройкам сборки проекта, вы можете изменять настройки распространения, но вы пытаетесь добавить путь поиска заголовка в настройках "Отладка". Поэтому убедитесь, что вы находитесь в правильных настройках. или выберите все настройки

Ответ 9

Я обнаружил, что с xCode 4.3.2 мне пришлось ввести   $ (SDKROOT)/USR/включать/libxml2 в поле поиска заголовка, а не просто   /USR/ включать/libxml2

Ответ 10

Как и у Mavericks (OS X 10.9), каталог /usr/include отсутствует. Половина ответов здесь устарела, так как приложение не будет компилироваться, пока вы не отсортируете каталог include.

Я решил проблему создания символической ссылки на MacOSX SDK в терминале, используя следующую команду:

sudo ln -s /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include /usr/include

Теперь приложение снова компилируется.

Ответ 11

Я не уверен, в чем разница, но добавьте путь include к проекту, а также к цели.

Ответ 12

В Mountain Lion я столкнулся с той же проблемой, которая была решена путем добавления /usr/include/libxml2 для включения путей с флагом "рекурсивный", используйте это, если все выше не является плодотворным.

Ответ 13

У меня была эта проблема, когда я снова открыл проект (который был разработан на XCode 3.something на Leopard) после перехода на Snow Leopard и XCode 3.2. Любопытно, что это повлияло только на некоторые виды сборок (сборки эмуляторов прошли отлично, ошибки устройства дали мне ошибку). И у меня есть libxml2 в /usr/include, и он действительно содержит libxml/tree.h.

Даже магия "Чистота" не сработала, но "Пустые кеши..." в меню "XCode" (между логотипом Apple и файлом) сделал трюк (было ли это меню в предыдущих версиях?). Избивает меня по причине, но после чистых больше не было жалоб относительно libxml/tree.h

Ответ 14

Также выберите "Всегда искать пользовательские пути" в YES. В XCode 4.3.3 его по умолчанию NO

Ответ 15

Пожалуйста, выполните следующие действия

  • Добавление libxml2
    libxml2.dylib можно найти на вашем компьютере Mac по адресу /usr/lib/libxml 2.dylib

  • Изменить "Пути поиска заголовков"
    Нажмите [Название проекта] (на левой панели) → Проект → Настройки сборки → Выбрать все (по умолчанию - базовое)
    Поиск путей заголовка заголовка в окне поиска
    Дважды щелкните по пути поиска заголовков → + → "$ (SDKROOT)/usr/include/libxml2"

  • Добавить -lxml2 в "Другой флаг компоновщика"
    Найдите "Другие флаги компоновщика" в качестве поиска на шаге 2
    нажмите на строку "Другие метки флагов". Нажмите "+" и добавьте "-lxml2" в список.

  • Измените тип проекта на ARC → Нет i.e Автоматический подсчет ссылок на Нет Вы можете выполнить поиск ARC согласно шагу 2

Ответ 16

Xcode 4.5 Я полностью использовал решение CW. Единственное исключение состоит в том, что $(SDKROOT)/usr/include/libxml2 не работал у меня, и мне пришлось добавить "$ (SDK_DIR)" /usr/include/libxml 2 в мои проекты Контуры поиска заголовков и Пути поиска заголовка пользователя. После этого проект будет успешно выполнен.

EDIT: у меня есть проект Google GData внутри моего проекта (так называемый MyProject) (мой проект использует). Для GData требуется libxml. Чтобы успешно скомпилировать проект MyProject, я добавляю "$ (SDK_DIR)" /usr/include/libxml 2 в пути поиска заголовков MyProject и нет в пути поиска заголовков в GData​​strong > . Если я не добавил его в MyProject, проект не построил).

Ответ 18

Blockquote Добавление libxml2 в Xcode 4.3.x

Добавление libxml2 - большая, жирная, худая боль в заднице. Если вы сделаете это, сделайте это, прежде чем вы заходите слишком далеко в построение своего проекта.

Вот как.

Настройки цели

Нажмите на свою цель (не ваш проект) и выберите "Сформировать фазы". Нажмите на раскрывающийся треугольник под названием "Link Binary With Libraries". Нажмите "+", чтобы добавить библиотеку. Выделите нижнюю часть списка и выберите "libxml2.dylib". Это добавит библиотеку libxml2 вашего проекта... но подождите.

Настройки проекта

Теперь вам нужно рассказать вашему проекту, где его искать еще три раза.

Выберите вкладку "Настройка параметров". Прокрутите вниз до раздела "Связывание". Под столбцами проекта дважды щелкните по строке "Другие метки флагов". Нажмите "+" и добавьте "-lxml2" в список.

Еще больше.

На той же вкладке прокрутите страницу вниз до раздела "Пути поиска". В столбце проекта в строке "Пути поиска в Framework" добавьте "/usr/lib/libxml2.dylib".

В "Пути поиска заголовков" и в строке "Пути поиска заголовка пользователя" добавить "$ (SDKROOT)/usr/include/libxml2". В этих последних двух случаях убедитесь, что путь введен в Debug AND Release.

Тогда. В меню "Продукт" выберите "Очистить".

Это работает и для Xcode5 тоже! Спасибо!

Ответ 19

Не помещайте libxml2.dylib в фреймворк папку под ним под root чуть ниже корня (верхний левый синий значок)

Затем нажмите кнопку "Проект" (верхний левый синий значок), "GO to Build Settings", в поле поиска введите "Path Search Paths" и добавьте этот "$ (SDKROOT)/usr/include/libxml2"

Этот код разрешает мою проблему, надеюсь, что это поможет вам исправить этот

Ответ 20

@Aqib Mumtaz - я получил его работу, следуя инструкциям в примечании Parris выше, озаглавленном "Добавление libxml2 в Xcode 4.3/5/6". Шаг в использовании пути поиска по базе данных не работает, и компилятор жалуется. Огромное удовольствие этому парню в любом случае!

Я использую Xcode 6.2b3

Независимо от версии Xcode, которую вы используете, она не работает. Не всегда предполагайте, что ошибки компиляции реальны. Существует много раз, когда он не отслеживает пути поиска заголовков и содержит четко перечисленные не найдены. Хуже того, ошибки, которые приводят к тому, что они указывают на вас в разных направлениях, так что вы тратите много времени на то, чтобы отвлекаться. С этим сказал...

Рекомендуйте детские шаги, начиная с этого точно:

  • создать одно окно Mac OS X Cocoa проект под названием "Bench Test"
  • добавить XpathQuery в исходный каталог проекта непосредственно в Finder
  • нажмите на значок маленькой папки в окне проекта. Красная кнопка закрытия.
  • перетащите XpathQuery (папка, если вы ее содержали) в активы проекта слева от окна окна проекта.
  • перетащите /Applications/Xcode/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/usr/lib/libxml2.2.dylib в свои активы проекта, внизу, Это добавит его в "Фазы сборки" → "Ссылка на двоичные файлы с библиотеками" - простой способ
  • щелкните по значку проекта "Bench Test" в столбце активов проекта, сверху слева.
  • найдите "Другие флаги компоновщика" в разделе "Настройки сборки"
  • добавить "-lxml2" (sans "") в "Другие флаги компоновщика" в столбце значков проекта "Bench Test".
  • найдите "поиск заголовка" в разделе "Настройки сборки"
  • добавить "$ (SDKROOT)/usr/include/libxml2" (sans ") в" Заголовки поиска заголовков" в столбце значков проекта "Bench Test".
  • добавить "$ (SDKROOT)/usr/include/libxml2" (sans ") в" Пути поиска заголовка пользователя" в столбце значков проекта "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, полный путь к исходному файлу для последующей детективной работы, чтобы получить компиляцию и компоновку проекта снова. (символические ссылки ломаются слишком легко и не являются естественными для Mac)
  • Последнее, что очень важно, см. http://www.cocoawithlove.com/2008/10/using-libxml2-for-parsing-and-xpath.html, где вы можете загрузить XpathQuery и получить еще больше добра.

надеюсь, что это поможет.

Если вы, вероятно, что-то развиваете для ветеранов, о, скажем, iPhone/iPad или Mac, и работаете против чего-то, называемого "MDWS" или "VIA", которые являются интерфейсами на основе SOAP для медицинской системы записи... пожалуйста свяжитесь со мной

Ответ 21

Я решил в три этапа inXcode 8.0 + Unit Test Project

1) Я добавил файл libxml в Build Phases. Следуйте этой ссылке

2) Я добавил Другие флаги компоновщика как -ObjC (как для целей проекта, так и для целей тестирования)

3) Я устанавливаю путь поиска заголовка как "${SDKROOT}/usr/include/libxml2" (не забывайте двойную кавычку в любой из сторон) (как для целей проекта, так и для целей тестирования)

Один из них решит проблему. Если нет, вам нужно применить все три из вышеперечисленных.

Ответ 22

i hardt я добавил неправильно, тогда я понимаю, что проблема не в поддержке дуги, поэтому проверьте поддержку здесь, спасатель жизни → http://www.michaelbabiy.com/arc-compliant-gdataxml-library/