5

私のアンマネージ C++ ソースには次のものがあります。

#define _USE_MATH_DEFINES
#include <cmath>

次に、M_PI を数回使用します。デバッグ構成でのコンパイルは問題なく動作しますが、リリースでは次のようになります。

エラー C2065: 'M_PI': 宣言されていない識別子

これを引き起こしている構成プロパティは何ですか?

4

3 に答える 3

6

解決しました。

入れていた

#define _USE_MATH_DEFINES

#include "stdafx.h"

プリコンパイル済みヘッダーがオン (/Yu) の場合、リリース モードであるため、それより上にあるものはすべて無視されます。

于 2010-11-02T12:30:45.907 に答える
3

次のコードは、デバッグとリリースの両方で問題なくコンパイルされます。

#define _USE_MATH_DEFINES
#include <cmath>

int main(void)
{
    double x = M_PI;
    return 0;
}

問題がコードの別の場所にある可能性があります。デバッグ モードまたはリリース モードの条件付きコンパイルはありますか?

于 2010-11-02T12:21:52.853 に答える
1

デバッグとリリースの構成の違いに注意してください。

最も重要な:

  • ファイルを含める
  • 定義する
于 2010-11-02T12:11:19.687 に答える