/SUBSYSTEM(指定子系统)

指定可执行文件所面向的 Windows 子系统。

语法

/SUBSYSTEM: { BOOT_APPLICATION | CONSOLE | EFI_APPLICATION |
EFI_BOOT_SERVICE_DRIVER | EFI_ROM | EFI_RUNTIME_DRIVER | NATIVE |
POSIX | WINDOWS }
  [ ,major [ .minor ]]

参数

BOOT_APPLICATION
在 Windows 启动环境中运行的应用程序。 有关启动应用程序的详细信息,请参阅关于 BCD

CONSOLE
Win32 字符模式应用程序。 操作系统提供为控制台应用程序提供控制台。 如果 mainwmain 为本机代码定义,int main(array<String ^> ^) 则为托管代码定义,或者使用 /clr:safe 完全生成应用程序,则 CONSOLE 是默认值。

EFI_APPLICATION
EFI_BOOT_SERVICE_DRIVER
EFI_ROM
EFI_RUNTIME_DRIVER
可扩展固件接口子系统。 有关详细信息,请参阅 UEFI 规范。 有关示例,请参阅 Intel UEFI 驱动程序和应用程序工具资源。 最低版本和默认版本为 1.0。

NATIVE
Windows NT 的内核模式驱动程序。 此选项通常为 Windows 系统组件而保留。 如果指定了 /DRIVER:WDM,则 NATIVE 为默认值。

POSIX
与 Windows NT 中的 POSIX 子系统一起运行的应用程序。

WINDOWS
此应用程序不需要控制台,可能是因为它会创建自己的窗口以与用户交互。 如果 WinMainwWinMain 为本机代码定义,或者 WinMain(HINSTANCE *, HINSTANCE *, char *, int)wWinMain(HINSTANCE *, HINSTANCE *, wchar_t *, int) 为托管代码定义,则 WINDOWS 为默认值。

majorminor
(可选)指定子系统所需的最低版本。 该参数是介于 0 到 65,535 之间的十进制数字。 版本号没有上限。

注解

/SUBSYSTEM 选项为可执行文件指定环境。

子系统的选择会影响链接器将选择的入口点符号(或入口点函数)。

子系统的可选最小值和默认的 majorminor 版本号如下所示:

子系统 最小值 默认值
BOOT_APPLICATION 1.0 1.0
CONSOLE 5.01 (x86) 5.02 (x64) 6.02 (ARM) 6.00 (x86, x64) 6.02 (ARM)
WINDOWS 5.01 (x86) 5.02 (x64) 6.02 (ARM) 6.00 (x86, x64) 6.02 (ARM)
NATIVE(带有 /DRIVER:WDM 1.00 (x86) 1.10 (x64, ARM) 1.00 (x86) 1.10 (x64, ARM)
NATIVE(不带 /DRIVER:WDM 4.00 (x86) 5.02 (x64) 6.02 (ARM) 4.00 (x86) 5.02 (x64) 6.02 (ARM)
POSIX 1.0 19.90
EFI_APPLICATION, EFI_BOOT_SERVICE_DRIVER, EFI_ROM, EFI_RUNTIME_DRIVER 1.0 1.0

在 Visual Studio 开发环境中设置此链接器选项

  1. 打开项目的“属性页” 对话框。 有关详细信息,请参阅在 Visual Studio 中设置 C++ 编译器和生成属性

  2. 选择“配置属性”>“链接器”>“系统”属性页面 。

  3. 修改“子系统”属性。

以编程方式设置此链接器选项

另请参阅

MSVC 链接器参考
MSVC 链接器选项