VS2010中的M_PI:在调试conf中工作但在发布中不起作用

发布于 2024-09-30 02:57:18 字数 235 浏览 2 评论 0原文

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

#define _USE_MATH_DEFINES
#include <cmath>

然后我使用 M_PI 几次。 在调试配置中编译可以完美地工作,但在发布中它给出:

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

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

In my unmanaged C++ source i have:

#define _USE_MATH_DEFINES
#include <cmath>

and then I use M_PI a couple of times.
Compiling in Debug configuration works flawlessly but in Release it gives:

error C2065: 'M_PI' : undeclared identifier

What could be the configuration property causing this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

酷炫老祖宗 2024-10-07 02:57:18

解决了。

#define _USE_MATH_DEFINES

之前

#include "stdafx.h"

已经将预编译头放在(/Yu)上,因为它处于发布模式,所以上面的所有内容都会被忽略。

Solved.

I had put

#define _USE_MATH_DEFINES

before

#include "stdafx.h"

With Precompiled Headers on (/Yu), as it's in Release mode, everything above it is ignored.

娇纵 2024-10-07 02:57:18

对于我来说,以下代码在调试和发布中编译得很好:

#define _USE_MATH_DEFINES
#include <cmath>

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

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

The following code compiles just fine in both debug and release for me:

#define _USE_MATH_DEFINES
#include <cmath>

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

Your issue may lay elsewhere in your code. Do you have conditional compilation anywhere for debug or release modes?

夜唯美灬不弃 2024-10-07 02:57:18

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

最重要的是:

  • 包含文件
  • 定义

Watch out for differences in the configurations Debug and release:

Most important:

  • include Files
  • defines
梦回旧景 2024-10-07 02:57:18

我对预编译头有同样的问题。
在Release模式下,确保创建了pch.cpp预编译头(/Yc)。

I had the same issue with precompiled header.
In Release mode, make sure the pch.cpp precompiled header is created (/Yc).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文