/ifcMap

此开关可告知编译器在何处查找 IFC 引用映射文件,该文件会将对命名的模块和标头单元的引用映射到相应的 IFC (.ifc) 文件。

语法

/ifcMap filename

备注

*filename* 参数指定 IFC 引用映射文件。 它可以是编译器工作目录的相对路径,也可以是绝对路径。

可以为编译器提供多个 /ifcMap 参数。

IFC 引用映射文件格式是 TOML 文件格式的子集。 IFC 引用映射文件可以同时包含 [[module]] 引用和 [[header-unit]] 引用。

语法错误或无法识别的表名会导致编译器错误 C7696 (TOML 分析错误)。

映射命名的模块

命名的模块的 IFC 引用映射文件的格式为:

# Using literal strings
[[module]]
name = 'M'
ifc = 'C:\modules\M.ifc'

# Using basic strings
[[module]]
name = "N"
ifc = "C:\\modules\\N.ifc"

此 IFC 引用映射文件将命名的模块 'M''N' 映射到各自对应的 IFC 文件。 等效 的“/reference” 为:

/reference M=C:\modules\M.ifc /reference N=C:\modules\N.ifc

要详细了解字段 name 的有效模块名称类型,请参阅 /reference remarks

映射标头单元

标头单元的 IFC 引用映射文件的格式为:

# Using literal strings
[[header-unit]]
name = ['quote', 'my-utility.h']
ifc = 'C:\header-units\my-utility.h.ifc'

[[header-unit]]
name = ['angle', 'vector']
ifc = 'C:\header-units\vector.ifc'

# Using basic strings
[[header-unit]]
name = ["quote", "my-engine.h"]
ifc = "C:\\header-units\\my-engine.h.ifc"

[[header-unit]]
name = ["angle", "algorithm"]
ifc = "C:\\header-units\\algorithm.ifc"

此 IFC 引用映射文件会将 "my-utility.h" 映射到 C:\header-units\my-utility.h.ifc,将 <vector> 映射到 C:\header-units\vector.ifc 等等。 等效的 /headerUnit 为:

/headerUnit:quote my-utility=C:\header-units\my-utility.h.ifc /headerUnit:angle vector=C:\header-units\vector.ifc /headerUnit:quote my-engine.h=C:\header-units\my-engine.h.ifc /headerUnit:angle algorithm=C:\header-units\algorithm.ifc

如果在 IFC 引用映射文件中指定 [[header-unit]],则编译器将隐式启用 /Zc:preprocessor,就像使用 /headerUnit 时隐式启用一样。 要详细了解查找方法 anglequote 的行为,请参阅 /headerUnit 备注

另请参阅

C++ 中的模块概述
演练:在 Visual C++ 项目中生成和导入标头单位
从命令行使用 MSVC 中的 C++ 模块