В настройках сборки XCode есть три разных пути поиска:
- Путь поиска платформы
- Путь поиска заголовка
- Путь поиска библиотеки
Может ли кто-нибудь объяснить, что делают эти пути и для чего они используются?
В настройках сборки XCode есть три разных пути поиска:
Может ли кто-нибудь объяснить, что делают эти пути и для чего они используются?
Путь поиска Framework: где искать фреймворки (.framework
пакеты) в дополнение к путям системных фреймворков. Не очень часто используется в iOS-разработке, официально нет iOS-фреймворков для разработчиков.
При разработке для Mac он устанавливается автоматически, если вы перетаскиваете в проект сторонний фреймворк. В противном случае просто установите его в каталог контейнера, в котором вы сохранили фреймворк.
В файлах xcconfig
вы используете эту переменную:
FRAMEWORK_SEARCH_PATHS = "/path/to/frameworks/container/directory"
Путь поиска заголовков: где искать файлы заголовков (.h
файлов) в дополнение к системным путям. Обычно он вам понадобится, если вы используете стороннюю библиотеку. Установите его в каталог, где у вас есть файлы заголовков. Если вы используете каталог для включения заголовка (пример: #import "mylibrary/component.h"
), установите его в родительский каталог.
В файлах xcconfig
вы используете эту переменную:
HEADER_SEARCH_PATHS = "/path/to/headers/container/directory"
Путь поиска библиотеки: где искать файлы библиотеки в дополнение к системным путям. Xcode установит его автоматически, если вы перетащите библиотеку (.a
файлов) в проект. Чтобы установить его вручную, используйте каталог, в котором находится библиотека.
В файлах xcconfig
вы используете эту переменную:
LIBRARY_SEARCH_PATHS = "/path/to/libraries/container/directory"
Все три могут содержать список путей с кавычками, разделенными пробелом.
Они используются для поиска фреймворков, заголовочных файлов или библиотек, которых нет в системных путях поиска (например, QTKit.Framework, стандартные заголовочные файлы C++ и т. д.).
Чаще всего я использую для этого файлы библиотеки заголовков boost (*.hpp) в своем коде. Я добавляю относительный путь «../lib/Boost/1.46.1» в путь поиска заголовков.
Я считаю, что лучше добавить это на уровне проекта, а не в каждой цели. Таким образом, цели наследуют это, и его нужно изменить только в одном месте, если я обновлю версию boost.