Visual Studio 中的 M_PI 问题

Posted

技术标签:

【中文标题】Visual Studio 中的 M_PI 问题【英文标题】:M_PI issue in Visual Studio 【发布时间】:2014-03-19 10:31:43 【问题描述】:

我在使用 Visual Studio 2012 编译包含 cmath 的 c++ 项目时遇到问题,我收到此错误

error C2065: 'M_PI' : undeclared identifier

我试过这个M_PI works with math.h but not with cmath in Visual Studio,但它根本不起作用

我该如何解决这个问题?

编辑

我几周前下载的应用程序源代码不稳定。所以今天我尝试下载更新的资源,现在它就像一个魅力

【问题讨论】:

所以您将#define _USE_MATH_DEFINES#include <cmath> 放在包含链中尽可能高的位置,但这并没有改变任何东西? 如果您进行简单的搜索,您会发现M_PI 不是C++(或C)标准的一部分。它们是POSIX standard though 的一部分。其他系统可能会将其作为扩展。 是的,弗雷德里克我就是这么做的 你能出示minimal code sample demonstrating the issue吗? 我认为这有点难,因为我正在尝试编译 Stellarium source code 但我很确定这与他们的代码无关,因为他们在 this guide 中解释了所有内容/跨度> 【参考方案1】:

将以下代码放在头文件中并包含它,你需要M_PI

#pragma once
#include <cmath>
#ifndef M_PI
namespace

    const double M_PI = std::acos(-1.0);

#endif

【讨论】:

或者只是在你自己的Math.h中定义M_PI,并且只直接包含你自己的头文件。

以上是关于Visual Studio 中的 M_PI 问题的主要内容,如果未能解决你的问题,请参考以下文章

Visual Studio(s-s-rS)中未填充相关参数

HTML 文件中的 Visual Studio 代码注释

在Visual Studio代码中查找和替换

如何在 Visual Studio 2008 中打开使用 Visual Studio 2005 创建的 rdl?

如何访问 Visual Studio 中的保存临时选项?

s-s-rS Visual Studio 2015 限制