4

プログラムをリリースモードでコンパイルするようにVC++に指示しましたが、assert()ステートメントは引き続き実行されます。アサーションは、パフォーマンスのためにリリースビルドからコンパイルされることになっていると思いました。どうしたの?コンパイルをスキップして設定する必要がある他の設定はありますか?

4

2 に答える 2

2

定義しているプリプロセッサシンボルを確認してください。通常、デバッグビルドはを定義_DEBUGし、リリースビルドは通常を定義しますNDEBUGNDEBUGが定義されると、通常、アサーションはオフになります。

于 2011-05-28T16:48:48.613 に答える
0

デバッガーでアプリを開きます。アサーション ダイアログが表示されているときに debug->break を実行します。アサートが発生しているソース ファイルを確認します。次に、そのファイルのビルド設定を見てください。設定が正しく、リリース バージョンをロードしている場合は、コンパイラ コマンド ラインで /P と /d1PP を設定して、間違った #define がどこから来ているかを明らかにします。

マーティン

于 2011-05-28T17:18:30.377 に答える