Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Импортирует единицу заголовка. Сообщает компилятору, где найти .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)