/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-filename 命名的相应 IFC,以便进行导入。

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 指令)