Что это означает, когда вы выбираете "Рекурсивный" в Пути поиска заголовка
Я ссылался на многие проекты, и я делаю это путем добавления их путей в пути поиска по заголовкам.
Я следил за ссылками на материалы через начало работы со ссылками на проект (например, включая ZXingWidget).
И я много этим занимаюсь сейчас, но я не понимаю проверки рекурсии.
- Что это значит?
- Когда я проверяю путь для "рекурсивный?"
Спасибо
3 ответа
Если вы дадите Xcode путь для использования для заголовков, он проверит этот путь при использовании #include
или же #import
заявление. Если файла нет, он выходит.
Если у вас есть путь, заданный как "рекурсивный", Xcode будет искать папки, которые он там найдет, если не найдет файл.
Выглядит так:
1) Введите желаемый путь для путей поиска заголовка, нажмите ввод.
2) Дважды щелкните введенный вами текст пути.
3) Справа от диалогового окна выберите рекурсивный.
Для тех, кто интересуется, как я, какой эффект выбора recursive
Путь поиска заголовка находится в командной строке компилятора, это генерировать -I
аргумент для каждого каталога в дереве, корни которого находятся по заданному пути. Это может привести к очень длинным командным строкам компилятора, что сделает поиск чего-либо еще практически невозможным. Поэтому стоит учитывать, сколько каталогов находится ниже пути, который вы указываете, если вы хотите использовать recursive
,
Я пытался указать -I../path/to/subproject/**
как флаг компилятора для отдельного файла, но это не работает (именно поэтому Xcode сам выполняет расширение).
(это верно для Xcode 9.4.1)
Когда вы устанавливаете path
(например Header Search Paths
, Library Search Paths
, Framework Search Paths
...) вы можете определить путь к одной из родительских папок и установить recursive
(/**
будет добавлено в конец пути). Например, вы можете осквернитьpath
к include
каталог (или более в Build
каталог) с recursive
параметр вместо include/<target_name>
.
Обратите внимание: если patch
содержит пробелы - , вы должны избежать их, используя
\
или заключите путь в двойные кавычки ""