Я получаю следующие ошибки.
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 (не очень дружественный .framework), у нас есть еще кое-что, что нужно сделать. Перейдите к настройкам сборки проекта (Проект->Редактировать настройки проекта->Сборка) и найдите «Пути поиска». В «Пути поиска заголовков» добавьте следующий путь:
$(SDKROOT)/usr/include/libxml2
Также см. ответ OP.
/usr/include
. Я не пробовал устанавливать libxml2, поэтому не могу подтвердить поведение по умолчанию. Но да, гораздо лучше связать это таким образом.
- person Matt Ball; 16.09.2009
Добавление 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.
- person User; 05.10.2014
1) добавить библиотеку «libxml2.dylib» в ЦЕЛЬ моего проекта (Фазы сборки -> Связать двоичный файл с библиотеками)
2) добавьте "$(SDKROOT)/usr/include/libxml2" в пути поиска заголовков на ЦЕЛИ (Настройки сборки -> Пути поиска заголовков)
После этого цель должна быть успешно построена.
Вам также необходимо добавить /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 (не очень дружественный .framework), у нас есть еще кое-что, что нужно сделать. Перейдите в настройки сборки проекта (Project->Edit Project Settings->Build
) и найдите «Search Paths
». В «Пути поиска заголовков» добавьте следующий путь на Mac:
/usr/include/libxml2
У Рэя Вендерлиха есть запись в блоге об использовании gdata, которая решает эту проблему. В основном эти простые шаги:
В XCode нажмите «Проект\Редактировать настройки проекта» и убедитесь, что отмечены «Все конфигурации».
Найдите параметр Search Paths\Header Search Paths и добавьте /usr/include/libxml2 в список.
Наконец, найдите раздел Linking\Other Linker Flags и добавьте в список -lxml2.
исходное сообщение: чтение и запись XML-документов с gdataxml
Я нашел то же самое, мне пришлось добавить $(SDKROOT)/usr/include/libxml2 для последней версии Xcode (4.3.x). ТАКЖЕ, то, что заставляло меня кружить в течение нескольких часов, - это тот факт, что я модифицировал «ЦЕЛЬ», а не «ПРОЕКТ» (новый пользовательский интерфейс Xcode настолько сложен, что его легко не заметить). Вам нужно изменить ПРОЕКТ!
Другое решение. выполните все шаги в пути поиска заголовка и т. д. и убедитесь, что выбранная вами конфигурация в проекте в настройках проекта является правильной. Когда вы дважды щелкаете по настройкам сборки проекта, вы можете изменить настройки распространения, но вы пытаетесь добавить путь поиска заголовка в настройках «Отладка». Поэтому убедитесь, что вы находитесь в правильных настройках. или выбрать все настройки
Я обнаружил, что с xCode 4.3.2 мне нужно было ввести $(SDKROOT)/usr/include/libxml2 в поле поиска заголовка, а не просто /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.
Даже волшебная "Очистить" не сработала, но "Очистить кэши..." в меню "XCode" (между логотипом Apple и файлом) помогло (было ли это меню в предыдущих версиях ?). Удивляет меня причина, но после очистки жалоб на libxml/tree.h больше не было.
Также выберите «Всегда искать пути пользователей» в ДА. В XCode 4.3.3 по умолчанию НЕТ
Пожалуйста, выполните следующие действия
Добавление libxml2
libxml2.dylib можно найти на компьютере Mac в папке /usr/lib/libxml2.dylib.
Изменить "Пути поиска заголовков"
Нажмите [Имя проекта] (на левой панели) -> Проект -> Настройки сборки -> Выбрать все (по умолчанию — Базовый)
Введите пути поиска заголовков в поле поиска
Двойной нажмите Пути поиска заголовков -> + -> "$(SDKROOT)/usr/include/libxml2"
Добавьте -lxml2 к "Другой флаг компоновщика"
Найдите "Другие флаги компоновщика" в качестве поиска на шаге 2
щелкните строку "Другие флаги компоновщика". Нажмите «+» и добавьте «-lxml2» в список.
Измените тип вашего проекта на ARC -> Нет, т.е. Автоматический подсчет ссылок на Нет. Вы можете искать ARC в соответствии с шагом 2.
Xcode 4.5 Я полностью использовал решение The CW. Единственным исключением является то, что $(SDKROOT)/usr/include/libxml2 у меня не работал, и мне пришлось добавить "$(SDK_DIR)"/usr/include/libxml2 в свои проекты < strong>Пути поиска заголовков и Пути поиска пользовательских заголовков. После этого проект успешно строится.
РЕДАКТИРОВАТЬ: у меня есть проект Google GData внутри моего проекта (называемого MyProject) (мой проект использует). Для GData требуется libxml. Для успешной сборки проекта MyProject я добавляю "$(SDK_DIR)"/usr/include/libxml2 в пути поиска заголовков MyProject и no в пути поиска заголовков GData . Если я не добавлял его в MyProject, проект не собирался).
Цитата Добавление libxml2 в Xcode 4.3.x
Добавление libxml2 — это большая, жирная и привередливая заноза в заднице. Если вы собираетесь это сделать, сделайте это до того, как вы зайдете слишком далеко в создании своего проекта.
Вот как.
Целевые настройки
Нажмите на свою цель (не на свой проект) и выберите «Build Phases». Нажмите на раскрывающийся треугольник под названием «Связать двоичный файл с библиотеками». Нажмите на «+», чтобы добавить библиотеку. Прокрутите список до конца и выберите «libxml2.dylib». Это добавит библиотеку libxml2 2 в ваш проект… но подождите.
Настройки проекта
Теперь вы должны сказать своему проекту, где его искать, еще три раза.
Выберите вкладку «Настройки сборки». Прокрутите вниз до раздела «Связывание». Под столбцами вашего проекта дважды щелкните строку «Другие флаги компоновщика». Нажмите «+» и добавьте «-lxml2» в список.
Еще больше.
В той же вкладке прокрутите вниз до раздела «Пути поиска». Под столбцом вашего проекта в строке «Пути поиска фреймворка» добавьте «/usr/lib/libxml2.dylib».
В строке «Пути поиска заголовков» И в строке «Пути поиска пользовательских заголовков» добавьте «$(SDKROOT)/usr/include/libxml2». В этих последних двух случаях убедитесь, что путь введен в Debug AND Release.
Потом. В меню «Продукт» выберите «Очистить».
Это работает и для Xcode5 тоже! Спасибо!
Не помещайте libxml2.dylib в папку frameworks, поместите его в корень чуть ниже корня (вверху слева синий значок)
Затем щелкните проект (синяя иконка в верхнем левом углу), перейдите к настройкам сборки, в поле поиска введите «Пути поиска заголовков», а затем добавьте этот «$ (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) Я добавил другие флаги компоновщика как -ObjC
(для целей проекта и тестового проекта)
3) Я устанавливаю Путь поиска заголовка как "${SDKROOT}/usr/include/libxml2"
(не забудьте двойные кавычки с обеих сторон) (как для целей проекта, так и для целей тестового проекта)
Один из них решит проблему. Если нет, вы должны применить все три из вышеперечисленных.
Я подумал, что добавил неправильно, но потом понял, что проблема в том, что он не поддерживает дугу, поэтому проверьте поддержку здесь, спасатель жизни -> http://www.michaelbabiy.com/arc-compliant-gdataxml-library