C++ 无法识别已定义的宏
我的Eclipse项目中有以下代码C++ 无法识别已定义的宏,c++,C++,我的Eclipse项目中有以下代码 #pragma once #ifdef WIN32 // Compiler enters here ! #define M_PI 3.14159265358979323846 #else #include <cmath> #endif #ifndef INFINITY #define INFINITY FLT_MAX #endif inline float Radians(float deg) { return
#pragma once
#ifdef WIN32 // Compiler enters here !
#define M_PI 3.14159265358979323846
#else
#include <cmath>
#endif
#ifndef INFINITY
#define INFINITY FLT_MAX
#endif
inline float Radians(float deg)
{
return ((float)M_PI/180.f) * deg;
}
我不明白可能是什么问题。我使用CMake构建了这个项目,使用
eclipsecdt4-mingwmakefiles
作为生成器。有什么建议吗?WIN32
不是正确的宏。实际上是。无论哪种方式,这是一个由VisualStudioC++定义的宏,但你使用的是实际的宏,检查的是“代码>”、“明文”、“代码”>或(64)。这仍然是错误的做法,因为需要:
#define _USE_MATH_DEFINES // for C++
#include <cmath>
<代码>定义了USER Mythy//C++
#包括
为了访问数学常数 您可以尝试
\uuuu MINGW32\uuuu
而不是WIN32
。。。?或者可能是\u WIN32
?您可以尝试-E
查看预处理后的编译器输出,然后搜索M#u PI
。您的帖子没有指出触发了#ifdef
中的哪个条件。是否是WIN32条件?是,它是定义。至少我是这么认为的,因为Eclipse的编辑器将代码显示为活动的。有没有办法100%确定编译器输入的是哪个部分?我的水晶球告诉我\define\u USE\u MATH\u define
丢失了(旧的明码,配置不正确的CMake,…)
#define _USE_MATH_DEFINES // for C++
#include <cmath>