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