Compiling MogreNewt with latest Mogre and Newton?

KobayashiK

21-10-2010 06:52:14

Hi
Currently I am using MogreNewt which is compiled against Mogre 1.7.1 and Newton 2.20.
I want to have MogreNewt which is built using the newest Newton library 2.25 as we can see in this thread http://www.newtondynamics.com/forum/vie ... 0&start=15 (we can download from http://www.newtondynamics.com/downloads ... n-2.25.rar)
I downloaded the MogreNewt 2.0 and tried to build against Newton 2.25 but I failed with many linker errors
Is there anyone here who build the MogreNewt against newer versions of Mogre and Newton?
Please help me out.

Thanks
Kobayashi

GantZ

21-10-2010 20:10:23

do you try to build it with vs2008 or vs2010 ?

KobayashiK

24-10-2010 06:40:50

Hello
I'm using VS2008, I get the following linker errors:

Error 1 error LNK2028: unresolved token (0A000158) "public: static void __cdecl Ogre::NedAllocPolicy::deallocateBytes(void *)" (?deallocateBytes@NedAllocPolicy@Ogre@@$$FSAXPAX@Z) referenced in function "public: virtual __thiscall Ogre::Any::~Any(void)" (??1Any@Ogre@@$$FUAE@XZ) OgreNewt_World.obj MogreNewt

Error 19 error LNK2028: unresolved token (0A000DB7) "extern "C" int __cdecl _CrtDbgReportW(int,wchar_t const *,int,wchar_t const *,wchar_t const *,...)" (?_CrtDbgReportW@@$$J0YAHHPB_WH00ZZ) referenced in function "public: class std::_Vector_const_iterator<class Ogre::ParameterDef,class std::allocator<class Ogre::ParameterDef> > & __thiscall std::_Vector_const_iterator<class Ogre::ParameterDef,class std::allocator<class Ogre::ParameterDef> >::operator++(void)" (??E?$_Vector_const_iterator@VParameterDef@Ogre@@V?$allocator@VParameterDef@Ogre@@@std@@@std@@$$FQAEAAV01@XZ) OgreNewt_World.obj MogreNewt

Error 78 error LNK2001: unresolved external symbol "public: virtual void __thiscall Ogre::MovableObject::detatchFromParent(void)" (?detatchFromParent@MovableObject@Ogre@@UAEXXZ) OgreNewt_Debugger.obj MogreNewt

Error 80 error LNK2001: unresolved external symbol "public: virtual void __thiscall Ogre::MovableObject::setUserObject(class Ogre::UserDefinedObject *)" (?setUserObject@MovableObject@Ogre@@UAEXPAVUserDefinedObject@2@@Z) OgreNewt_Debugger.obj MogreNewt

Error 83 error LNK2001: unresolved external symbol "public: virtual class Ogre::UserDefinedObject * __thiscall Ogre::MovableObject::getUserObject(void)" (?getUserObject@MovableObject@Ogre@@UAEPAVUserDefinedObject@2@XZ) OgreNewt_Tools.obj MogreNewt

Error 88 error LNK2001: unresolved external symbol "public: virtual void __thiscall Ogre::ManualObject::begin(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,enum Ogre::RenderOperation::OperationType)" (?begin@ManualObject@Ogre@@UAEXABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@W4OperationType@RenderOperation@2@@Z) OgreNewt_Debugger.obj MogreNewt

Error 89 error LNK2001: unresolved external symbol "public: virtual void __thiscall Ogre::ManualObject::setMaterialName(unsigned int,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (?setMaterialName@ManualObject@Ogre@@UAEXIABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z) OgreNewt_Debugger.obj MogreNewt

Error 90 error LNK2019: unresolved external symbol "public: __thiscall Ogre::VertexData::VertexData(void)" (??0VertexData@Ogre@@$$FQAE@XZ) referenced in function "protected: void __thiscall MogreNewt::OgreAddons::MovableText::_setupGeometry(void)" (?_setupGeometry@MovableText@OgreAddons@MogreNewt@@$$FIAEXXZ) OgreNewt_Tools.obj MogreNewt

Regards
Kobayashi

GantZ

24-10-2010 18:42:51

have you change the linking options to point to the path where reside your ogremain.lib (in mogresdk). ? should be in general tab, in path to additional libraries.

KobayashiK

25-10-2010 15:46:13

Hi,
Yes, I am pointing to ogremain.lib in mogresdk.
I am using mogrenewt 1.7.1. (which is downloaded from viewtopic.php?f=8&t=9193) and Newton 2.25 (downloaded from http://www.newtondynamics.com/downloads ... n-2.25.rar).

As we can see the linker errors mostly related to OgreNewt, do we need to have newer version of ogrenewt which refers to Newton 2.25??

Regards
Kobayashi

GantZ

25-10-2010 21:27:11

do we need to have newer version of ogrenewt which refers to Newton 2.25??
mogrenewt is a port of ogrenewt, it don't reference it, so we do not need to care about it at this point.

anyway, check that you point to the correct newton lib, the path need to be change to the related version of mogre and newton on your computer. If you still have some trouble, i have compiled a version against 2.25, i need to test it a bit before, so i will upload it tomorrow.

KobayashiK

26-10-2010 10:22:36

Hi,
Thank you for your reply.
I double checked the references to Mogre and Newton, all are correct, but still flooded with linker errors :(.
It would be great if you upload it.

Thanks
Kobayashi

GantZ

26-10-2010 18:21:11

check the mogrenewt 2.0 thread for the new binaries

KobayashiK

28-10-2010 18:05:28

Hello Gantz
Thanks for the update.

There is an updated newton version at http://www.newtondynamics.com/downloads ... n-2.25.rar, Could you please build it again?

Thanks
Kobayashi

Beauty

13-12-2010 23:22:48

Just a little note:

Two years ago I also tried to update/compile MogreNewt.
There were 4 or 6 different versions of the newton.lib in each package of the NewtonSDK.
I can't remember all the differences (one was for double precision) and I don't remember which one was the "right".
Also I don't know of there are still several versions of newton.lib in the Newton binary download package.

But keep in mind that there are different versions - maybe try an other one for compiling.

Beauty

15-12-2010 11:32:49

Today I found my post about this:
I found an interesting post of the Newton developer.
When I tried to update the MogreNewt wrapper for use with Newton 2.0 (long time ago) I was confused of the different newton lib files and didn't know which to use. (In the 2.0 beta16 were 6 types of the newton.lib file)

This is why I like mt libraries, the make bigger EXE but the are self contained and run on any version of windows.
while the md, will link to the version of the run time you have in your system but they required intaller to install a runtime.

mt are good for end casual users hwo do no wnat to install, but not good for develeopers
md are good for developers but the end user will have to run intaller.
I guess you wnat and mt that is good for developers so that he can make apps for end user that do not require installation.


Maybe it's interesting for somebody to know :wink:

Beauty

15-12-2010 11:36:34

And an other post, which could be interesting for compiling:
This I found in the OgreNewt forum section:
OgreNewt should now work with Ogre 1.7.1 and there are also solution and project files for VS2010.

There is also a new environment variable that needs to be set:
"OGRE_BUILD_HOME" - directory where you built your Ogre 1.7

Give it a spin and let me know if something does not work and better yet, a solution :wink:

But I wrote there would be still problems with the OgreNewt demos under VS2010.

What's about MogreNewt?
Is it usable now with Visual Studio 2010?
Any experiences?



And one more post related to compiling MogreNewt:
everything needed is on the addons repository. the only thing you need to take care is to update the include / library / using path. the best way is to link to the latest sdk files. it's what i use to compile mogrenewt.

so far, i haven't be able to fix my install, i would like to avoid reinstalling windows. now, i will remember not touching the winsxs folder anymore :)