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 问题的主要内容,如果未能解决你的问题,请参考以下文章