Compiling or using ogreOde

drey

11-03-2008 09:25:23

Hi all,
I know this issue came out already, I read posts on the forum, tried to follow tutorials but it didnt help, tried different versions of ode, ogreode and prebuild SDKs but it still didnt work.
Here is my problem : I want tu use ogreode to make my ninja walk on the floor and not above it (like the tutos says to do ) but none of my version of ogreode work.

I'm with codeblocks+windows and I cant compile it from source, even after correcting all the links to dll and includes because I have some "cant find -lstlportstlg.5.0" issue, but event I cant find this lib anywhere.
Then if I remove references to it, then I have "undefined reference to OgreOde::DebugContact::somefunction"...

Same thing with the demos when I tried prebuild sdk, I have got some other errors...
Coud someone help me here ? cause I spend so much time on it already I'm felling discouraged.

Thanks

dermont

11-03-2008 10:00:59

You need to update the OgreOde_Core project.

Project->Add files and from the "Add files to project.." dialog

directory : ogreode/src
type of files : C/C++ files
Select all files and Open

Repeat for headers ogreode/include

drey

11-03-2008 10:35:22

thanks dermont fir your quick answer.

Should I be doing this with ogreode version from cvs or with the sdk thing I can get from there : http://tuan.kuranes.free.fr/Ogre.html#OgreOde

Anyway, I tried with both and I still get some errors. For example, with the CVS version I get this ones :

In file included from C:\IDE\ogreode\src\OgreOdeJoint.cpp:8:
C:/IDE/ogreode/include/OgreOdeJoint.h:59: error: `dParamERP' was not declared in this scope
C:/IDE/ogreode/include/OgreOdeJoint.h:59: error: enumerator value for `Parameter_ERP' not integer constant
C:\IDE\ogreode\src\OgreOdeJoint.cpp: In member function `virtual void OgreOde::BallJoint::setParameter(OgreOde::Joint::Parameter, Ogre::Real, int)':
C:\IDE\ogreode\src\OgreOdeJoint.cpp:273: error: `dJointSetBallParam' was not declared in this scope
C:\IDE\ogreode\src\OgreOdeJoint.cpp: In member function `virtual Ogre::Real OgreOde::BallJoint::getParameter(OgreOde::Joint::Parameter, int)':
C:\IDE\ogreode\src\OgreOdeJoint.cpp:278: error: `dJointGetBallParam' was not declared in this scope


Any idea ?

Plus I'm still confused for this lstlportstlg.5.0 thing the roject looks for in the libs an search directories...

dermont

11-03-2008 11:26:14

Ogreode version from cvs and ode-0.90.

For your particular problem it appears that you are trying to build against the version of ode that ships with the Ogre/MingW dependencies. Try explicitly setting the include/lib paths for ode (these should be the first items) in the Project Build Options.

The STLPort configuration was dropped in favor of a modifed version of libstdc++, i.e MinGW C++ Toolbox.

http://www.ogre3d.org/wiki/index.php/Co ... _and_MinGW
http://www.ogre3d.org/wiki/index.php/Co ... gW_STLPort

drey

11-03-2008 13:30:51

Allright, I managed to compile OgreOde_Core and OgreOde_Prefab !!!
Thanks again Dermont !

I renamed the ode folder in the ogre SDK something else to be sure it didnt get used and corrected the libs and include path manually. Then I removed reference to the stlport something and changed it to MinGW/libstdc++.

I'm afraid I'm going to need some more of your help though.
Now.... I still cant build the SimpleScene Demo because it needs the OgreOdeLoader thing, which I didnt compile... I tried to set up a new project looking at how the prefab project was built.
When I try to make it work, I get those errors :

C:/IDE/ogreode/loader/src/OgreOdeDotLoader.cpp:81: undefined reference to `_imp___ZN14OgreOde_Loader9DotLoader8loadFileERKSs'
C:/IDE/ogreode/loader/src/OgreOdeDotLoader.cpp:90: undefined reference to `_imp___ZN14OgreOde_Loader9DotLoader11parseObjectEPK9TiXmlNodeRKSsS5_'
obj\Debug\src\OgreOdeDotLoader.o: In function `ZN14OgreOde_Loader9DotLoader11parseObjectEPK9TiXmlNodeRKSsS5_':
C:/IDE/ogreode/loader/src/OgreOdeDotLoader.cpp:105: undefined reference to `_imp___ZN14OgreOde_Loader9DotLoader12parseVehicleEPK9TiXmlNodeRKSsS5_'
C:/IDE/ogreode/loader/src/OgreOdeDotLoader.cpp:109: undefined reference to `_imp___ZN14OgreOde_Loader9DotLoader12parseRagdollEPK9TiXmlNodeRKSsS5_'
C:/IDE/ogreode/loader/src/OgreOdeDotLoader.cpp:113: undefined reference to `_imp___ZN14OgreOde_Loader9DotLoader20parseCompositeObjectEPK9TiXmlNodeRKSsS5_'
C:/IDE/ogreode/loader/src/OgreOdeDotLoader.cpp:117: undefined reference to `_imp___ZN14OgreOde_Loader9DotLoader17parseSingleObjectEPK9TiXmlNodeRKSsS5_'
obj\Debug\src\OgreOdeDotLoader.o: In function `ZN14OgreOde_Loader9DotLoader12parseRagdollEPK9TiXmlNodeRKSsS5_':
C:/IDE/ogreode/loader/src/OgreOdeDotLoader.cpp:383: undefined reference to `_imp___ZNK14OgreOde_Loader9DotLoader20parseRagdollSettingsEPN14OgreOde_Prefab7Ragdoll12BoneSettingsEPKv'
C:/IDE/ogreode/loader/src/OgreOdeDotLoader.cpp:389: undefined reference to `_imp___ZNK14OgreOde_Loader9DotLoader20parseRagdollSettingsEPN14OgreOde_Prefab7Ragdoll12BoneSettingsEPKv'
collect2: ld returned 1 exit status


The loadFile function does exists though, but I dont know how to make it understand that....Any idea ?
thanks !

dermont

11-03-2008 13:54:49

Try adding "OGREODEEXPORT_LOADER" without the quotes to the Compiler defines and rebuild your OgreOde_Loader project.

drey

11-03-2008 14:46:05

It works !! it works !!

OgreOde_Loader worked and then the simple scene demo did too !!!
I feel euphoric...

Thank you so much for your help !!!
I had put _OGREODEEXPORT_LOADER in the compiles defines...

Now I'm going to try to include ode in my own project....Hope it's not going to be as hard....
Guess I'll soon be back on the forum :-)

mccleive

26-10-2008 15:18:54

Finally got all of the following to compile from source:

Ogre 1.6 (SVN 8112)
Ode-0.10.1
OgreOde (SVN 2504)

using Code::Blocks and MinGW -- had lots of issues. It seems like the directory structure has been moved around or something. Spent a lot of time updating include directories and library names.

tinyxml --> libtinyxml
tinyxmld --> libtinyxmld
ode --> ode_singled | ode_single

there were some "..\..\..\..\" that needed to be "..\..\..\..\..\", so I just remapped those from $(OGRE_HOME)

This thread got me over the final step -- had to change
OGREODEEXPORT_Loader --> OGREODEEXPORT_LOADER

which finally got all the pieces working. Just posting in case it can help someone else....