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


(публикуя этот вопрос для справочной цели, я отвечу сразу)

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

include <myheader.h>
  1. добавление пути глобально для всех проектов, таких как системные заголовки.
  2. добавление пути только к определенному проекту.
4   51   2010-08-07 02:22:06

4 ответа:

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

  1. посмотрите на Настройки - > местоположения - >"исходные деревья" в предпочтении Xcode. Путь, добавленный здесь, будет системным путем и доступен для включения во все проекты.

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

о 2-м варианте:

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

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

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

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

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

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

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

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

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

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

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