5

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

#define _USE_MATH_DEFINES
#include <cmath>

然后我使用 M_PI 几次。在 Debug 配置中编译完美无缺,但在 Release 中它提供:

错误 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 回答