Что это значит, когда вы проверяете "Рекурсивный" в путях поиска заголовков - программирование
Подтвердить что ты не робот

Что это значит, когда вы проверяете "Рекурсивный" в путях поиска заголовков

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

Я слежу за реферирующими файлами через "Записанный проект", который начинается (например, включая ZXingWidget).

И я делал это много сейчас, но я не понимаю проверку рекурсивного.

  • Что это значит?
  • Когда я проверяю путь для "рекурсивного?"

Спасибо

4b9b3361

Ответ 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 содержит пробелы - , вы должны избегать их, используя \ или заключить путь в двойные кавычки ""