编译器和链接器选项 (C++/CX)

环境变量、C++/CX 编译器选项和链接器选项支持为 Windows 运行时生成应用。

库路径

%LIBPATH% 环境变量指定用于搜索 .winmd 文件的默认路径。

编译器选项

选项 说明
/ZW

/ZW:nostdlib
启用 Windows 运行时语言扩展。

nostdlib 参数可阻止编译器使用标准的预定义搜索路径来查找程序集和 .winmd 文件。

/ZW 编译器选项隐式指定以下编译器选项:

- /FI vccorlib.h,这会强制包含 vccorlib.h 头文件,该文件定义编译器所需的许多类型。
- /FU Windows.winmd,这会强制包含 Windows.winmd 元数据文件,该文件由操作系统提供,定义 Windows 运行时中的许多类型。
- /FU Platform.winmd,这会强制包含 Platform.winmd 元数据文件,该文件由编译器提供,定义命名空间的 Platform 系列中的大多数类型。
/AI dir 向编译器用于查找程序集和 .winmd 文件的搜索路径添加目录(由 dir 参数指定)。
/FU file 强制包含指定模块或 .winmd 文件。 即,不必在源代码中指定 #usingfile 。 编译器会自动强制包含自己的 Windows 元数据文件 Platform.winmd。
/D "WINAPI_FAMILY=2" 创建一个定义,以便使用与 Windows 运行时兼容的 Win32 SDK 子集。

链接器选项

选项 说明
/APPCONTAINER[:NO] 将可执行文件标记为可在 appcontainer(仅限)中运行。
/WINMD[:{NO|ONLY}] 发出 .winmd 文件和关联的二进制文件。 此选项必须传递给链接器,才能发出 .winmd。

NO- 不发出 .winmd 文件,但是发出二进制文件。

ONLY- 发出 .winmd 文件,但是不发出二进制文件。
/WINMDFILE:filename 要发出的 .winmd 文件的名称,而不是默认 .winmd 文件名。 如果在命令行上指定了多个文件名,则使用最后一个名称。
/WINMDDELAYSIGN[:NO] 对 .winmd 文件进行部分签名并将公钥置于二进制文件中。

NO-(默认)不对 .winmd 文件进行签名。

除非还指定了 /WINMDKEYFILE 或 /WINMDKEYCONTAINER,否则 /WINMDDELAYSIGN 不会产生任何效果。
/WINMDKEYCONTAINER:name 指定用来对程序集进行签名的密钥容器。 name 参数对应于用于对元数据文件进行签名的密钥容器。
/WINMDKEYFILE:filename 指定用于对程序集进行签名的密钥或密钥对。 filename 参数对应于用于对元数据文件进行签名的密钥。

备注

使用 /ZW时,编译器会自动链接到 DLL 版本的 C 运行时 (CRT)。 不允许链接到静态库版本,在通用 Windows 平台应用中对不允许使用的 CRT 函数进行的任何使用都会导致编译时错误。

另请参阅

生成应用和库