/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
时隐式启用一样。 要详细了解查找方法 angle
和 quote
的行为,请参阅 /headerUnit 备注。
另请参阅
C++ 中的模块概述
演练:在 Visual C++ 项目中生成和导入标头单位
从命令行使用 MSVC 中的 C++ 模块