/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 文字モード アプリケーションに対して使用します。 オペレーティング システムには、コンソール アプリケーションのコンソールが用意されています。 ネイティブ コードに main または wmain が定義されている場合、マネージド コードに 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
アプリケーションにはコンソールは不要です。このシステムにはユーザーとの対話用のウィンドウが作成されるからです。 ネイティブ コードに WinMain または wWinMain が定義されている場合、あるいはマネージド コードに WinMain(HINSTANCE *, HINSTANCE *, char *, int) または wWinMain(HINSTANCE *, HINSTANCE *, wchar_t *, int) が定義されている場合、WINDOWS がデフォルトになります。

major および minor
(省略可能) サブシステムに最低限必要なバージョンを指定します。 引数には、0 ~ 65535 の範囲の 10 進数を指定します。 バージョン番号に上限はありません。

解説

このオプションは /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. [サブシステム] プロパティを変更します。

このリンカーをコードから設定するには

  • 以下を参照してください。SubSystem

関連項目

MSVC リンカーのリファレンス
MSVC リンカー オプション