Добавление пути поиска заголовка системы в Xcode
(Разместив этот вопрос в справочных целях, я отвечу сразу)
Как добавить пути поиска заголовка в Xcode? Особенно если включить с этим синтаксисом:
include <myheader.h>
- Глобальное добавление пути ко всем проектам, таким как системные заголовки.
- Добавление пути только к конкретному проекту.
4 ответа
У нас есть два варианта.
Посмотрите Preferences->Locations->"Source Trees" в настройках XCode. Путь, добавленный здесь, будет системным путем и будет доступен для всех проектов.
Задавать
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
Опция, заголовки были подобраны автоматически.