Добавление пути поиска заголовка системы в Xcode

(Разместив этот вопрос в справочных целях, я отвечу сразу)

Как добавить пути поиска заголовка в Xcode? Особенно если включить с этим синтаксисом:

include <myheader.h>
  1. Глобальное добавление пути ко всем проектам, таким как системные заголовки.
  2. Добавление пути только к конкретному проекту.

4 ответа

Решение

У нас есть два варианта.

  1. Посмотрите Preferences->Locations->"Source Trees" в настройках XCode. Путь, добавленный здесь, будет системным путем и будет доступен для всех проектов.

  2. Задавать HEADER_SEARCH_PATHS параметр в настройках сборки по информации о проекте. я добавил "${SRCROOT}" здесь без рекурсии. Этот параметр хорошо работает для большинства проектов.

О втором варианте:

Xcode использует Clang, для которого установлен GCC-совместимый набор команд. GCC имеет опцию-Idir который добавляет системные пути поиска заголовка. И эта опция доступна через HEADER_SEARCH_PATHS в настройках сборки проекта Xcode.

Однако строка пути, добавленная к этому параметру, не должна содержать никаких пробельных символов, поскольку параметр будет передан команде оболочки как есть.

Но некоторые пользователи OS X (например, я) могут размещать свои проекты по пути, включая пробелы, которые следует избегать. Вы можете избежать этого, как /Users/my/work/a\ project\ with\ space если вы вводите его вручную. Вы также можете экранировать их кавычками, чтобы использовать переменную окружения, такую ​​как "${SRCROOT}",

Или просто использовать . указать текущий каталог. Я видел этот трюк в исходном коде Webkit, но я не уверен, что текущий каталог будет установлен в каталог проекта при его создании.

${SRCROOT} предопределенное значение Xcode. Это означает исходный каталог. Вы можете найти больше значений в справочном документе.

PS. На самом деле вы не должны использовать брекеты {}, Я получаю тот же результат с $SRCROOT, Если вы знаете разницу, пожалуйста, дайте мне знать.

Продолжите до ответа Eonil, связанного с настройками уровня проекта. Если выбрана цель и выбрана вкладка "Параметры сборки", в разделе "Пути поиска для путей поиска по заголовку" может отсутствовать список. В этом случае вы можете изменить "Все" на "Базовый" в строке поиска, и в разделе "Пути поиска" появятся "Пути поиска в заголовке".

Использовать цитаты просто для полноты.

"/Users/my/work/a project with space"/**

Если не рекурсивный, удалите /**

Хотя на этот вопрос есть ответ, я решил его по-другому, когда у меня возникла та же проблема. У меня была эта проблема, когда я скопировал папки с опцией Create Folder references; тогда сработало вышеупомянутое решение добавления папки в build_path. Но когда папка была добавлена ​​с помощью Create groups for any added folder Опция, заголовки были подобраны автоматически.

Другие вопросы по тегам