Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Импортирует единицу заголовка. Сообщает компилятору, где найти .ifc файл (двоичное представление единицы заголовка) для указанного заголовка.
Синтаксис
/headerUnitheader-filename=ifc-filename
/headerUnit:quoteheader-filename=ifc-filename
/headerUnit:angleheader-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)