导入标头单元。 指示编译器在何处查找指定标头的 .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-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 指令)