Visual Studio 開発者コマンドプロンプト

Visual Studio をインストールすると開発者用のコマンドプロンプトのショートカットがスタートメニューにいくつか追加されます。昔は「開発者用のコマンドプロンプト」といえば1つだけだったと思うのですが、ここ近年では類似したショートカットが複数登録される状態になっています。

Visual Studio 2022 をインストールした状態で、それぞれ何を目的としたコマンドプロンプトなのかを調べてみました。ここでは広義の意味でコマンドプロンプトと表現します。場合によっては PowerShell を指している、ということです。

今回は情報元 https://docs.microsoft.com/en-us/cpp/build/building-on-the-command-line?view=msvc-170 を参考にして、それぞれの目的をまとめています。

Developer Command Prompt for VS2022

開発者用のコマンドプロンプトといえば、このショートカットが代表的かと思います。

32bit x86 ネイティブツールを使用して、 32bit x86 ネイティブコードをビルドするように環境を設定します。

ドキュメントではこのような表現をされているので、ツールを動かす環境と生成されるアプリの対応関係を示すものと考えられます。ツールを実行する環境=ホスト、生成された実行体が想定する環境=ターゲットと表記すると、以下の通りです。

  • ホスト: 32bit アプリのコンパイラ・リンカーなどを使用
  • ターゲット: 32bit アプリケーション

Developer PowerShell for VS2022

コマンドプロンプトとして、PowerShell を起動するようになったものです。 Visual Studio 2019 から含まれているようで、 Visual Studio 2017 のころはありませんでした。

おそらくシェル以外は Developer Command Prompt for VS2022 と同じ状態です。

x64 Native Tools Command Prompt for VS2022

64bit x64 ネイティブツールを使用して 64bit x64 ネイティブコードをビルドするように環境を設定します。

同じようにホスト、ターゲットを記載してみると次の通りです。

  • ホスト: 64bit アプリのコンパイラ・リンカーなどを使用
  • ターゲット: 64bit アプリケーション

x86 Native Tools Command Prompt for VS2022

32bit x86 ネイティブツールを使用して 32bit x86 ネイティブコードをビルドするように環境を設定します。

同じようにホスト、ターゲットを記載してみると次の通りです。

  • ホスト: 32bit アプリのコンパイラ・リンカーなどを使用
  • ターゲット: 32bit アプリケーション

x64_x86 Cross Tools Command Prompt for VS2022

64bit x64 ネイティブツールを使用して 32bit x86 ネイティブコードをビルドするように環境を設定します。

同じようにホスト、ターゲットを記載してみると次の通りです。

  • ホスト: 64bit アプリのコンパイラ・リンカーなどを使用
  • ターゲット: 32bit アプリケーション

x86_x64 Cross Tools Command Prompt for VS2022

32bit x86 ネイティブツールを使用して、 64bit x64 ネイティブコードをビルドするように環境を設定します。

同じようにホスト、ターゲットを記載してみると次の通りです。

  • ホスト: 32bit アプリのコンパイラ・リンカーなどを使用
  • ターゲット: 64bit アプリケーション

まとめ

これらのショートカットは、クロスコンパイルをするときに主に使用するもののようです。おそらく OS が 32bit 環境であっても、 64bit 向けのビルド成果物を出力しないといけない場合に使うのでしょう。 例えば Windows10 64bit 環境下であれば、どの環境も使用可能ですが、 32bit 環境下であれば、ツールチェインに 64bit を使用するものは起動できないものと考えられます。

64bit アプリケーションのみを対象として、自身も 64bit 環境下にあるのならば、「x64 Native Tools Command Prompt」を積極的に使っていくので良さそうですね。

関連記事

コメントを残す

メールアドレスが公開されることはありません。

CAPTCHA


このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください