>From compiling SimGear (this is only the last part of the clouds-3d

SkyRenderableInstanceCloud.hpp:230: warning: argument to `int' from
In file included from SkyRenderableInstance.hpp:27,
                 from SkySceneManager.hpp:38,
                 from SkySceneManager.cpp:29:
mat33.hpp:60: warning: friend declaration `Vec3<Type> operator*(const 
   Vec3<Type>&, const Mat33<Type>&)' declares a non-template function
mat33.hpp:60: warning: (if this is not what you intended, make sure the 
   function template has already been declared and add <> after the
   name here) -Wno-non-template-friend disables this warning
mat33.hpp:64: warning: friend declaration `Mat33<Type> operator*(Type,
   Mat44<Type>&)' declares a non-template function
In file included from SkySceneManager.hpp:41,
                 from SkySceneManager.cpp:29:
SkyRenderableInstanceCloud.hpp: In member function `int 
   SkyRenderableInstanceCloud::_GetRequiredLogResolution(float, float,
SkyRenderableInstanceCloud.hpp:230: warning: initialization to `int'
from `
SkyRenderableInstanceCloud.hpp:230: warning: argument to `int' from
cloud.cxx: In member function `bool SGCloudLayer::reposition(float*,
   double, double, double, double)':
cloud.cxx:705: `isnan' undeclared (first use this function)
cloud.cxx:705: (Each undeclared identifier is reported only once for
   function it appears in.)
make[5]: *** [cloud.o] Error 1
make[4]: *** [all-recursive] Error 1
make[3]: *** [all-recursive] Error 1
make[2]: *** [all-recursive] Error 1
make[1]: *** [all] Error 2
make: *** [all-recursive] Error 1

This was sorted out by uncommenting lines 28&29 of cloud.cxx:

// #if defined (__APPLE__) 
// // any C++ header file undefines isinf and isnan
// // so this should be included before <iostream>
inline int (isinf)(double r) { return isinf(r); } //See below
inline int (isnan)(double r) { return isnan(r); } //HACK to make MingW
MsyS build work. Find better solution ASAP. May well break other
// #endif

(I added the end of line comments)
SimGear now compiles, but this is hardly a good solution. Does anybody
know what's going on here? Why is isnan() being undefined?

I have a feeling this may have come up before, but I can't find it in
the archives, or remember the solution.

Giles Robertson

Flightgear-devel mailing list

Reply via email to