web-dev-qa-db-ja.com

x64ネイティブツールのコマンドプロンプトとx64クロスツールのコマンドプロンプトの違いは何ですか?

64ビットのWindows8.1に32ビットのVisualStudio2013をインストールしました。 5つのコマンドプロンプトがあります。

  1. VS2013の開発者コマンドプロンプト
  2. VS2013 ARM CrossToolsコマンドプロンプト
  3. VS2013x64クロスツールコマンドプロンプト
  4. VS2013x64ネイティブツールのコマンドプロンプト
  5. VS2013x86ネイティブツールのコマンドプロンプト

私はの違いを理解していません:

  • VS2013とVS2013x86ネイティブツールの開発者コマンドプロンプト
  • VS2013x64クロスツールコマンドプロンプトとVS2013x64ネイティブツールコマンドプロンプト
19
Abhishek Jain

クロスコンパイラは、あるプラットフォームで実行され、別のプラットフォームのコードを生成するコンパイラです。お使いのマシンには、x64コードを生成できる2つのコンパイラがあります。 1つはvc/bin/AMD64_x86ディレクトリにある32ビットクロスコンパイラで、もう1つはvc/bin/AMD64ディレクトリにある64ビットネイティブコンパイラです。どちらもまったく同じx64マシンコードを生成します。

32ビットオペレーティングシステムを使用している場合にのみ、クロスコンパイラを使用する必要があります。生成されたプログラムのデバッグとテストは不快です。別のマシンが必要で、リモートデバッガーを使用してください。おそらく、ビルドサーバーは大丈夫です。 64ビットバージョンのWindowsを使用している場合は、どちらを選択してもかまいませんが、「x64ネイティブ」を選択することをお勧めします。コンパイラとリンカはわずかに高速で、はるかに大きなプログラムに取り組むことができます。

これは、ARM用のクロスコンパイラ選択しかない理由も説明しています。開発マシンにARMプロセッサがありません。

17
Hans Passant