Добавление пути поиска заголовка системы в Xcode - PullRequest
52 голосов
/ 07 августа 2010

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

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

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

Ответы [ 4 ]

98 голосов
/ 07 августа 2010

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

  1. Посмотрите на Предпочтения-> Местоположения -> «Исходные деревья» в настройках 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.Если вы знаете разницу, пожалуйста, дайте мне знать.

12 голосов
/ 05 августа 2011

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

4 голосов
/ 05 апреля 2011

Чтобы использовать кавычки только для полноты.

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

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

3 голосов
/ 19 января 2012

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

...