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