/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)