iOS: уточнение различных путей поиска

В настройках сборки XCode есть три разных пути поиска:

  • Путь поиска платформы
  • Путь поиска заголовка
  • Путь поиска библиотеки

Может ли кто-нибудь объяснить, что делают эти пути и для чего они используются?


person cschuff    schedule 01.12.2011    source источник


Ответы (2)


Путь поиска 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" 

Все три могут содержать список путей с кавычками, разделенными пробелом.

person djromero    schedule 01.12.2011

Они используются для поиска фреймворков, заголовочных файлов или библиотек, которых нет в системных путях поиска (например, QTKit.Framework, стандартные заголовочные файлы C++ и т. д.).

Чаще всего я использую для этого файлы библиотеки заголовков boost (*.hpp) в своем коде. Я добавляю относительный путь «../lib/Boost/1.46.1» в путь поиска заголовков.

Я считаю, что лучше добавить это на уровне проекта, а не в каждой цели. Таким образом, цели наследуют это, и его нужно изменить только в одном месте, если я обновлю версию boost.

person Mark    schedule 01.12.2011