web-dev-qa-db-ja.com

Visual Studioのリリースモードとデバッグモードの違いは何ですか?

可能性のある複製:
。NETでのデバッグとリリース
デバッグ/リリースの違い

プロジェクトのビルド中のVisual Studioのリリースモードとデバッグモードの違いは何ですか?

108
Cute

まあ、それはあなたが使用している言語に依存しますが、一般にそれらはそれぞれ独自の設定を持つ2つの別々の構成です。デフォルトでは、デバッグはコンパイル済みファイルにデバッグ情報を含めます(簡単にデバッグできるようにします)が、リリースでは通常、最適化が有効になっています。

条件付きコンパイルに関する限り、それぞれがプログラムでチェックできる異なるシンボルを定義しますが、それらは言語固有のマクロです。

80
Tal Pressman

DebugReleaseは単に異なるラベルソリューション構成。必要に応じて他の人を追加できます。私がかつて取り組んだプロジェクトには、アプリケーションの社内編集機能を有効にするために使用される「Debug Internal」というプロジェクトがありました。 Configuration Manager...Buildメニューにある)にアクセスすると、これを見ることができます。 Configuration Managerダイアログボックス で、MSDNライブラリの詳細を確認できます。

ソリューション構成は、一連のプロジェクト構成で構成されます。繰り返しますが、これらは単なるラベルであり、今回はプロジェクトの設定のコレクションです。たとえば、C++ライブラリプロジェクトには、「Debug」、「Debug_Unicode」、「Debug_MT」などと呼ばれるプロジェクト構成があります。

使用可能な設定は、ビルドしているプロジェクトのタイプによって異なります。 .NETプロジェクトの場合、#definesなどのかなり小さなセットです。 C++プロジェクトの場合、Tweakには非常に多くの種類のものがあります。

ただし、一般的には、オプティマイザーをオフにしてプロジェクトをビルドする場合、およびビルド(通常は.PDBファイル)に完全なデバッグ/シンボル情報を含める場合は、「デバッグ」を使用します。オプティマイザーを有効にする場合、およびdo n'tに完全なデバッグ情報を含める場合は、「リリース」を使用します。

109
Roger Lipscombe

主な違いは、デバッグモードでコンパイルした場合、デバッグを許可するpdbファイルも作成されることです(そのため、実行中にコードをステップ実行できます)。ただし、これはコードがそれほど最適化されていないことを意味します。

20
Tetraneutron