Я получаю следующие ошибки.
libxml / tree.h нет такого файла или каталога
Я уже добавил libxml2.dylib
в свой проект, но у меня возникают такие проблемы. Пожалуйста, помогите мне.
objective-c
iphone
xcode
libxml2
Сагар Р. Котари
источник
источник
Ответы:
Следуйте инструкциям здесь , в разделе «Настройка файла проекта».
Также см . Ответ OP .
источник
/usr/include
. Я не пробовал устанавливать libxml2, поэтому не могу подтвердить поведение по умолчанию. Но да, лучше так связать.Добавление 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 and Release.
3. Чистый
В
Product
меню выберитеClean
.Тогда, если бы я был вами (и давайте смотреть правде в глаза, вероятно, я), я бы вышел из Xcode и ушел. Когда вы вернетесь и запустите, все будет в порядке.
источник
opening import file 'Swift.swift': Not a directory
после выполнения этого в Xcode 5.Для Xcode 6 мне пришлось сделать следующее:
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:источник
У Рэя Вендерлиха есть сообщение в блоге об использовании 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 настолько сложен, что его легко упустить из виду). Вам необходимо модифицировать ПРОЕКТ!
источник
Другое решение. выполните все шаги в пути поиска заголовка и т.д. и убедитесь, что выбранная вами конфигурация в проекте в настройках проекта правильная. Когда вы дважды щелкаете настройки сборки проекта, вы можете изменить настройки распространения, но вы пытаетесь добавить путь поиска заголовка в настройках «Отладка». Поэтому убедитесь, что вы выбрали правильные настройки. или выберите все настройки
источник
Я обнаружил, что в xCode 4.3.2 мне пришлось ввести $ (SDKROOT) / usr / include / libxml2 в поле поиска по заголовку, а не просто / usr / include / libxml2
источник
Начиная с Mavericks (OS X 10.9) каталог / usr / include отсутствует . Половина ответов здесь устарела, поскольку приложение не будет компилироваться, пока вы не отсортируете каталог include.
Я решил проблему, создав символическую ссылку на MacOSX SDK в терминале, используя следующую команду:
Приложение снова компилируется.
источник
Я не уверен, в чем разница, но добавьте путь включения к проекту, а также цель.
источник
На 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
источник
Также выберите «Всегда искать пути пользователя» на ДА. В 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 Я полностью использовал решение CW. Единственным исключением является то, что $ (SDKROOT) / usr / include / libxml2 у меня не работает, и мне пришлось добавить «$ (SDK_DIR)» / usr / include / libxml2 в пути поиска заголовков проектов и пути поиска заголовков пользователей. . После этого проект успешно строится.
РЕДАКТИРОВАТЬ: у меня есть проект Google GData внутри моего проекта (называемого MyProject) (мой проект использует). GData требует libxml. Чтобы успешно построить проект MyProject, я добавляю "$ (SDK_DIR)" / usr / include / libxml2 в пути поиска заголовков MyProject и нет в пути поиска заголовков GData . Если я не добавил его в MyProject, проект не был создан ).
источник
Я нашел этот визуальный урок полезным.
источник
Добавление 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 для системы медицинских записей ... пожалуйста, свяжитесь со мной
источник
Я решил за три шага в Xcode 8.0 + Unit Test Project
1) Я добавил файл libxml в этапы сборки. Перейдите по этой ссылке
2) Я добавил другие флаги компоновщика как
-ObjC
(для целей проекта и тестового проекта)3) Я настраиваю путь поиска заголовка как
"${SDKROOT}/usr/include/libxml2"
(не забывайте двойные кавычки с обеих сторон) (для целей проекта и тестового проекта)Один из них решит вопрос. Если нет, вам нужно применить все три из вышеперечисленных.
источник
Я думал, что добавил неправильно, тогда я понимаю, что проблема в том, что это не поддержка дуги, поэтому проверьте поддержку здесь, спасатель жизни -> http://www.michaelbabiy.com/arc-compliant-gdataxml-library/
источник