2 errors when compileing

If you are a new Irrlicht Engine user, and have a newbie-question, this is the forum for you. You may also post general programming questions here.
Post Reply
Guest

2 errors when compileing

Post by Guest »

CCameraMayaSceneNode.cpp(246) : error C2666: 'fmod' : 3 overloads have similar conversions
C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\math.h(606): could be 'long double fmod(long double,long double)'
C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\math.h(558): or 'float fmod(float,float)'
C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\math.h(191): or 'double fmod(double,double)'
while trying to match the argument list '(irr::f32, double)'


and

c:\irrlicht\source\fast_atof.h(68) : error C2666: 'pow' : 7 overloads have similar conversions
C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\math.h(620): could be 'long double pow(long double,int)'
C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\math.h(618): or 'long double pow(long double,long double)'
C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\math.h(572): or 'float pow(float,int)'
C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\math.h(570): or 'float pow(float,float)'
C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\math.h(534): or 'double pow(int,int)'
C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\math.h(532): or 'double pow(double,int)'
C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\math.h(195): or 'double pow(double,double)'
while trying to match the argument list '(int, irr::f32)'
keless
Posts: 805
Joined: Mon Dec 15, 2003 10:37 pm
Location: Los Angeles, California, USA

Post by keless »

maybe, where ever you are using those functions, try to explicitly cast your variables? ie:

(float) fmod( (float) foo, (float) bar) ;
a screen cap is worth 0x100000 DWORDS
fretnoize
Posts: 43
Joined: Sun Feb 01, 2004 4:57 am
Location: Los Angeles

Post by fretnoize »

I think what the original author of this thread was trying to say is that he's trying to compile the source code with VS .net 2003 (vc7) and he gets these problems when compiling the project with out even having changed any code. I'm guessing this is his problem, because I have the same issue. I was using .4.0 with these errors and thought perhaps .4.2 would fix it, so downloaded and extracted the source and tried again with the same issue. I am venturing into the source, because I want to paste in the code to fix the quake BSPs to render the triangles correctly, and not having every other triangle flipped. So my first step was to see if i could compile the project, to make sure it compiled, so I could be sure if I broke something or not.

Since someone posted a work around for the problem (compiling the map with out -meta) I guess I'll try that for now and wait for .5, unless someone knows of a quick solution to these compile problems. :) don't really need the -meta for the moment anyway.

But, this person might be trying to compile the source for another reason.
fretnoize
Posts: 43
Joined: Sun Feb 01, 2004 4:57 am
Location: Los Angeles

Post by fretnoize »

I think what the original author of this thread was trying to say is that he's trying to compile the source code with VS .net 2003 (vc7) and he gets these problems when compiling the project with out even having changed any code. I'm guessing this is his problem, because I have the same issue. I was using .4.0 with these errors and thought perhaps .4.2 would fix it, so downloaded and extracted the source and tried again with the same issue. I am venturing into the source, because I want to paste in the code to fix the quake BSPs to render the triangles correctly, and not having every other triangle flipped. So my first step was to see if i could compile the project, to make sure it compiled, so I could be sure if I broke something or not.

Since someone posted a work around for the problem (compiling the map with out -meta) I guess I'll try that for now and wait for .5, unless someone knows of a quick solution to these compile problems. :) don't really need the -meta for the moment anyway.

But, this person might be trying to compile the source for another reason.
Yosepp
Posts: 2
Joined: Mon Feb 02, 2004 2:28 pm

Post by Yosepp »

I have found a way to help the original poster:
change line
nRotY = (f32)fmod(nRotY, 360);
to
nRotY = (f32)fmod(nRotY, 360.0f);

and line
f *= (f32)pow(10, exp);
to
f *= (f32)pow(10.0f, exp);

Hope it helps!
This is because if you don't put the f in the end, the compiler will think it is a double and thus creating an unknown overload. This worked in MSVC .NET
Post Reply