Я получаю следующие ошибки.
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, поэтому не могу подтвердить поведение по умолчанию. Но да, лучше так связать.
Добавление 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 and Release.
В Product
меню выберите Clean
.
Тогда, если бы я был вами (и давайте смотреть правде в глаза, вероятно, я), я бы вышел из Xcode и ушел. Когда вы вернетесь и запустите, все будет в порядке.
opening import file 'Swift.swift': Not a directory
после выполнения этого в Xcode 5.
1) добавить библиотеку libxml2.dylib в мой проект TARGET (Фазы сборки -> Связать двоичный файл с библиотеками)
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 щелкните Project \ Edit Project Settings и убедитесь, что отмечены «Все конфигурации».
Найдите параметр Search Paths \ Header Search Paths и добавьте / usr / include / libxml2 в список.
Наконец, найдите раздел Linking \ Other Linker Flags и добавьте -lxml2 в список.
исходное сообщение: чтение и запись XML-документов с помощью gdataxml
Я нашел то же самое, мне пришлось добавить $ (SDKROOT) / usr / include / libxml2 для последней версии Xcode (4.3.x). ТАКЖЕ, что заставляло меня кружиться часами, так это то, что я изменял «TARGET», а не «PROJECT» (новый пользовательский интерфейс Xcode настолько сложен, что его легко упустить из виду). Вам необходимо модифицировать ПРОЕКТ!
Другое решение. выполните все шаги в пути поиска заголовка и т.д. и убедитесь, что выбранная вами конфигурация в проекте в настройках проекта правильная. Когда вы дважды щелкаете настройки сборки проекта, вы можете изменить настройки распространения, но вы пытаетесь добавить путь поиска заголовка в настройках «Отладка». Поэтому убедитесь, что вы выбрали правильные настройки. или выберите все настройки
Начиная с 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
Приложение снова компилируется.
На Mountain Lion я столкнулся с той же проблемой, которая была решена путем добавления /usr/include/libxml2
путей включения с флагом «рекурсивный», используйте это, если все вышеперечисленное не принесло результатов.
У меня возникла эта проблема, когда я повторно открыл проект (который был разработан на XCode 3.something на Leopard) после обновления до Snow Leopard и XCode 3.2. Как ни странно, это повлияло только на некоторые виды сборок (сборки эмуляторов прошли нормально, сборки устройств дали мне ошибку). И у меня есть libxml2 в / usr / include, и он действительно содержит libxml / tree.h.
Даже волшебная «Очистка» не сработала, но «Очистить кеши ...» в меню «XCode» (между логотипом Apple и файлом) помогло (было ли это меню в предыдущих версиях?). Поражает меня причина, но после чистки больше не было жалоб на 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 в пути поиска заголовков проектов и пути поиска заголовков пользователей. . После этого проект успешно строится.
РЕДАКТИРОВАТЬ: у меня есть проект Google GData внутри моего проекта (называемого MyProject) (мой проект использует). GData требует libxml. Чтобы успешно построить проект MyProject, я добавляю "$ (SDK_DIR)" / usr / include / libxml2 в пути поиска заголовков MyProject и нет в пути поиска заголовков GData . Если я не добавил его в MyProject, проект не был создан ).
Я нашел этот визуальный урок полезным.
Blockquote Добавление libxml2 в Xcode 4.3.x
Добавление libxml2 - это большая, жирная и привередливая заноза в заднице. Если вы собираетесь это сделать, сделайте это до того, как зайдете слишком далеко в создании своего проекта.
Вот как.
Целевые настройки
Щелкните цель (не свой проект) и выберите «Фазы сборки». Щелкните раскрывающийся треугольник с названием «Связать двоичный файл с библиотеками». Нажмите «+», чтобы добавить библиотеку. Прокрутите список до конца и выберите «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». Шаг с использованием пути поиска Framework не работает, и компилятор жалуется. В любом случае, большая честь этому парню!
Я использую 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/