VS2010中的M_PI:在Debug conf中工作但在Release中不工作

时间:2010-11-02 12:08:33

标签: c++ visual-studio-2010 cmath

在我的非托管C ++源代码中,我有:

#define _USE_MATH_DEFINES
#include <cmath>

然后我使用M_PI几次。 在Debug配置中进行编译可以完美地工作,但在Release中它会给出:

  

错误C2065:'M_PI':未声明的标识符

导致此问题的配置属性是什么?

3 个答案:

答案 0 :(得分:6)

解决。

我放了

#define _USE_MATH_DEFINES

#include "stdafx.h"

使用预编译标题(/ Yu),因为它处于发布模式,它上面的所有内容都会被忽略。

答案 1 :(得分:3)

以下代码在我的调试和发布中编译得很好:

#define _USE_MATH_DEFINES
#include <cmath>

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

您的问题可能在您的代码中的其他位置。在调试或发布模式的任何地方都有条件编译吗?

答案 2 :(得分:1)

注意配置调试和发布的差异:

最重要的是:

  • 包含文件
  • 定义