У меня есть следующий код в моем проекте Eclipse,Defined макрос не признал
#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;
}
Проблема заключается в том, что я получаю следующее сообщение об ошибке от компилятора
Luzoso.hpp:22:20: error: 'M_PI' was not declared in this scope
return ((float)M_PI/180.f) * deg;
Я не понимаю, что в проблема случается. Я построил проект с помощью CMake, используя ECLIPSE CDT4 - MinGW Makefiles
в качестве генератора. Есть рекомендации?
Вы можете попробовать '__MINGW32__' вместо' WIN32' ...? Или, может быть, '_WIN32'? Вы можете попробовать '-E' видеть вывод компилятора после предварительной обработки, а затем искать это для' M_PI'. –
В вашем сообщении не указано, какое условие в '# ifdef' было запущено. Это условие «WIN32» или нет? – PaulMcKenzie
Определяется ли 'WIN32'? – immibis