Page 1 of 1

Upgrade from 1.2 -> 1.3.1 = Compiling errors

Posted: Wed Jul 25, 2007 3:40 am
by LittleGiant
For some reason SViewFrustrum is not resolved, and i get a boat load of errors, it seems to be the only thing in Irrlitch that doesn't resolve correctly.

Has anything changed with SviewFrustrums, or the method in which you should utilize them? Has anyone run into this? or have any suggestions on things to try?
Switching back to 1.2 makes everything compile fine, tho i get the warnings i mention below still.

Not that this is useful since these error are cause it thinks your declaring a type, but for whatever it's worth here is some of the error output.
1>e:\projects\innerspace\src\engine\Camera.h(48) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>e:\projects\innerspace\src\engine\Camera.h(48) : error C2143: syntax error : missing ';' before '*'
1>e:\projects\innerspace\src\engine\Camera.h(48) : error C2433: 'Engine::CCamera::SViewFrustrum' : 'virtual' not permitted on data declarations
1>e:\projects\innerspace\src\engine\Camera.h(48) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>e:\projects\innerspace\src\engine\Camera.h(48) : warning C4183: 'getViewFrustrum': missing return type; assumed to be a member function returning 'int'
1>e:\projects\innerspace\src\engine\Camera.h(80) : error C2146: syntax error : missing ';' before identifier 'm_oViewArea'
1>e:\projects\innerspace\src\engine\Camera.h(80) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>e:\projects\innerspace\src\engine\Camera.h(80) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int


Also on a less important not i get tonnes of warnings like this:
1>e:\projects\innerspace\irrlichtcur\include\IUnknown.h(114) : warning C4793: '__asm' : causes native code generation for function 'bool irr::IUnknown::drop(void)'
1> e:\projects\innerspace\irrlichtcur\include\IUnknown.h(112) : see declaration of 'irr::IUnknown::drop'
1>e:\projects\innerspace\irrlichtcur\include\irrArray.h(270) : warning C4793: '__asm' : causes native code generation for function 'irr::core::stringc &irr::core::array<T>::operator [](irr::u32)'
1> with
1> [
1> T=irr::core::stringc
1> ]
1> e:\projects\innerspace\irrlichtcur\include\irrArray.h(268) : see declaration of 'irr::core::array<T>::operator []'
1> with
1> [
1> T=irr::core::stringc
1> ]
1> e:\projects\innerspace\irrlichtcur\include\irrArray.h(269) : while compiling class template member function 'irr::core::stringc &irr::core::array<T>::operator [](irr::u32)'
1> with
1> [
1> T=irr::core::stringc
1> ]
1> e:\projects\innerspace\irrlichtcur\include\IQ3Shader.h(110) : see reference to class template instantiation 'irr::core::array<T>' being compiled
1> with
1> [
1> T=irr::core::stringc
1> ]
Any help would be greatly appreciative, trying to get back to working on this project but wanna update my libraries.

FYI : Windows Vista with Visual Studio 2005 SP1

-Chris

Posted: Wed Jul 25, 2007 5:31 am
by vitek
The class SViewFrustrum was renamed to the correct SViewFrustum. The incompatibility could have been easily avoided with a simple typedef...

Code: Select all

// backward compatibility for old name
typedef SViewFrustum SViewFrustrum;
The __asm warnings come from the _IRR_DEBUG_BREAK_IF macro which is defined in irrTypes.h. I'd be willing to bet that you are compiling your application with a the /clr flag which generates managed code. You could either remove the /clr flag or you could modify irrTypes.h to avoid the inline assembly.

Travis

Posted: Wed Jul 25, 2007 8:14 am
by LittleGiant
Oh wow i feel pretty dumb not seeing the difference in the spelling.
Should have read the release notes.

Thanks for the help with that and all those warnings, all cleaned up now and ready to move forward.

Thanks again,
Chris