2014-03-19 109 views
2

我有包括CMATH與Visual Studio 2012問題編譯一個C++項目,我得到這個錯誤M_PI問題在Visual Studio

error C2065: 'M_PI' : undeclared identifier

我已經試過這M_PI works with math.h but not with cmath in Visual Studio但它根本不起作用

我該如何解決這個問題?

編輯

應用程序源代碼我下載了幾個星期前,並不穩定。所以今天我試圖下載更新的來源,現在,它就像一個魅力

+3

所以你把'#定義_USE_MATH_DEFINES'和'#include '儘可能在你的包含鏈中,但是這並沒有改變任何東西? –

+4

如果你做一個簡單的搜索,你會發現'M_PI'不是C++(或C)標準的一部分。它們是[POSIX標準]的一部分(http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/math.h.html)。其他系統可能會將其作爲擴展。 –

+0

是的Frédéric我做的確如此 – nicetoCyou

回答

0

把下面的代碼在頭文件,包括它,你需要M_PI

#pragma once 
#include <cmath> 
#ifndef M_PI 
namespace 
{ 
    const double M_PI = std::acos(-1.0); 
} 
#endif 
+0

或者只是在自己的Math.h中定義M_PI,並且只能直接包含自己的頭文件。 – OMGtechy