iOS: уточнение различных путей поиска - PullRequest
21 голосов
/ 01 декабря 2011

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

  • Framework Search Path
  • Путь поиска заголовка
  • Путь поиска в библиотеке

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

Ответы [ 2 ]

25 голосов
/ 01 декабря 2011

Путь поиска фреймворка : где искать фреймворки (.framework комплекты) в дополнение к путям системных фреймворков.Не используется в разработке для iOS, официально нет платформ iOS для разработчиков.

В разработке для Mac это устанавливается автоматически, если вы перетаскиваете сторонний фреймворк в проект.В противном случае просто установите его в каталог контейнера, в котором вы сохранили структуру.

В xcconfig файлах вы используете эту переменную:

FRAMEWORK_SEARCH_PATHS = "/path/to/frameworks/container/directory"

Путь поиска заголовка :где искать заголовочные файлы (.h files) в дополнение к системным путям.Обычно он вам понадобится, если вы используете стороннюю библиотеку.Установите его в каталог, где у вас есть файлы заголовков.Если вы используете каталог для включения заголовка (пример: #import "mylibrary/component.h"), установите его в родительский каталог.

В xcconfig файлах вы используете эту переменную:

HEADER_SEARCH_PATHS = "/path/to/headers/container/directory"

Путь поиска библиотеки : где искать системные файлы в дополнение к системным путям.Xcode установит его автоматически, если вы перетащите библиотеку (.a файлы) в проект.Чтобы установить его вручную, используйте каталог, в котором находится библиотека.

В xcconfig файлах вы используете эту переменную:

LIBRARY_SEARCH_PATHS = "/path/to/libraries/container/directory" 

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

0 голосов
/ 01 декабря 2011

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

Мое наиболее распространенное использование для этого - использование файлов библиотеки расширенных заголовков (* .hpp) в моем коде. Я добавляю относительный путь "../lib/Boost/1.46.1" в путь поиска заголовка.

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

...