/headerUnit (Использование единицы заголовка IFC)

Импортирует единицу заголовка. Сообщает компилятору, где найти .ifc файл (двоичное представление единицы заголовка) для указанного заголовка.

Синтаксис

/headerUnit header-filename=ifc-filename
/headerUnit:quote [header-filename=ifc-filename]
/headerUnit:angle [header-filename=ifc-filename]

Аргументы

header-filename
Во время import header-name; компилятора header-name разрешается в файл на диске. Используется header-filename для указания этого файла. После сопоставления компилятор открывает соответствующий IFC с именем импорта ifc-filename .

ifc-filename
Имя файла, содержащего скомпилированные сведения об единицах заголовка. Чтобы импортировать несколько единиц заголовков, добавьте отдельный /headerUnit параметр для каждого файла.

Замечания

Для /headerUnit параметра компилятора требуется /std:c++20 или более поздняя версия.

Параметр /headerUnit компилятора доступен в Visual Studio 2019 версии 16.10 или более поздней.

Когда компилятор сталкивается import "file"; или import <file>; этот параметр компилятора помогает компилятору найти скомпилированный блок заголовка (.ifc) для указанного файла заголовка. Путь к этому файлу можно выразить следующим образом:

  • /headerUnit ищет скомпилированную единицу заголовка в текущем каталоге или в расположении, указанном в ifc-filenameфайле.

  • /headerUnit:quote ищет скомпилированный файл единицы заголовка, используя те же правила, что #include "file"и .

  • /headerUnit:angle ищет скомпилированный файл единицы заголовка, используя те же правила, что #include <file>и .

Компилятор не может сопоставить один header-name файл с несколькими .ifc файлами. Сопоставление нескольких header-name аргументов с одним .ifc возможно, но не рекомендуется. Содержимое .ifc импортируется так, как если бы он был только заголовком, указанным header-nameв .

Компилятор неявно включает новый препроцессор при использовании этого параметра. Если какая-либо форма /headerUnit указана в командной строке, то /Zc:preprocessor добавляется в командную строку компилятором. Чтобы отказаться от неявного /Zc:preprocessor, укажите: /Zc:preprocessor-

Если отключить новый препроцессор, но файл, который вы компилируете, импортирует блок заголовка, компилятор сообщит об ошибке.

Примеры

Учитывая проект, ссылающийся на два файла заголовка и их единицы заголовков, как указано в этой таблице:

Файл заголовка ФАЙЛ IFC
C:\utils\util.h C:\util.h.ifc
C:\app\app.h C:\app\app.h.ifc

Параметры компилятора для ссылки на единицы заголовков для этих конкретных файлов заголовков будут выглядеть следующим образом:

cl ... /std:c++latest /headerUnit C:\utils\util.h=C:\util.h.ifc /headerUnit:quote app.h=app.h.ifc

Установка данного параметра компилятора в среде разработки Visual Studio

Обычно этот параметр не должен быть задан в среде разработки Visual Studio. Он устанавливается системой сборки.

См. также

/exportHeader (создание единиц заголовков)
/headerName (Создание единицы заголовка из указанного заголовка)
/reference (использование IFC для именованного модуля)
/translateInclude (преобразование директив include в директивы import)