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 を使用するものは起動できないものと考えられます。
コメント