Ode Problem

Dude_Person

24-09-2006 19:20:52

I'm attempting to implement OgreOde in my project, so I downloaded the SDK from here http://tuan.kuranes.free.fr/Ogre.html#OgreOde.

I added the include folder, and the lib folder to my compiler directories, but I'm getting compiling errors. All I did was include OgreOde_Core.h in my project. I get these compiling errors.
------ Build started: Project: Fortress, Configuration: Release Win32 ------
Compiling...
Fortress.cpp
c:\ogreode\include\OgreOdeJoint.h(44) : error C2065: 'dJointTypePlane2D' : undeclared identifier
c:\ogreode\include\OgreOdeGeometry.h(24) : error C2065: 'dCapsuleClass' : undeclared identifier
c:\ogreode\include\OgreOdeGeometry.h(29) : error C2065: 'dHeightfieldClass' : undeclared identifier
c:\ogreode\include\OgreOdeGeometry.h(30) : error C2065: 'dConvexClass' : undeclared identifier
Build log was saved at "file://c:\OgreSDK122\Fortress\Fortress\obj\Release\BuildLog.htm"
Fortress - 4 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========



Note: I'm using VC++ 2005 Express Edition

tuan kuranes

25-09-2006 12:17:30

You need to link and compile against the ode shipped with ogreode, or the latest ode from opende website.
Ogre ships with old ode header and include you'll have to avoid.

Dude_Person

26-09-2006 04:33:22

Ya, turns out it was using the old ones that came with Ogre. All works now. Thx. 8)

ervilha

26-11-2006 20:56:28

i'm with the same problem. I can't solve it.

Here are the settings that i have defined:

Additional Include Folders:
include;
"$(OGRE_HOME)\include";
"$(OGRE_HOME)\samples\include";
D:\ESCOLA\PROJECTO\OGRE\OgreOde\include;
D:\ESCOLA\PROJECTO\OGRE\OgreOde\prefab\include

Additional Library Directories:
"D:\ESCOLA\PROJECTO\OGRE\OgreOde\prefab\lib\$(ConfigurationName)";
"D:\ESCOLA\PROJECTO\OGRE\OgreOde\lib\$(ConfigurationName)";
"$(OGRE_HOME)\lib"

Additional Dependencies:
OgreMain_d.lib
OgreMain.lib
OgreOde_Core.lib
OgreOde_Prefab.lib
ode.lib

What did i miss?

nikki

27-11-2006 05:37:12

You need to add the ode include and lib directories. They are:-
Include:-
D:\ESCOLA\PROJECTO\OGRE\OgreOde\ode\include

Lib Release:-
D:\ESCOLA\PROJECTO\OGRE\OgreOde\ode\lib\release

Lib Debug:-
D:\ESCOLA\PROJECTO\OGRE\OgreOde\ode\lib\debug

ervilha

28-11-2006 03:05:28

Thanks, that solved the problem.

Anonymous

12-01-2007 14:11:12

You need to add the ode include and lib directories. They are:-
Include:-
D:\ESCOLA\PROJECTO\OGRE\OgreOde\ode\include

Lib Release:-
D:\ESCOLA\PROJECTO\OGRE\OgreOde\ode\lib\release

Lib Debug:-
D:\ESCOLA\PROJECTO\OGRE\OgreOde\ode\lib\debug



I downloaded the OgreOde files from CVS and the "OgreOde\ode" folder is missing.

Does someone has the same problem?

tuan kuranes

12-01-2007 14:28:08

Download ode from http://www.ode.org/ and place it inside that folder.

Anonymous

12-01-2007 16:16:17

Download ode from http://www.ode.org/ and place it inside that folder.

I tried to do that before your post yet. But the problem persists:


**** Build of configuration Release for project ODE ****

make -k all
Building file: ../GranTurismOgre.cpp
Invoking: GCC C++ Compiler
g++ -D_STLP_NO_CUSTOM_I -D_STLP_USE_DYNAMIC_LIB -D_WINDOWS -DNDEBUG -I"C:\OgreSDK\stlport\stlport" -I"C:\OgreSDK\include" -I"C:\OgreSDK\samples\include" -I"C:\ogreode\ogreode\include" -I"C:\ogreode\ogreode\prefab\include" -I"C:\ogreode\ogreode\lib" -I"C:\ogreode\ogreode\lib\Release" -I"C:\ogreode\ogreode\prefab\lib\Release" -I"C:\ogreode\ogreode\loader\include" -I"C:\ogreode\ogreode\ode\include\ode" -O3 -c -fmessage-length=0 -mthreads -fexceptions -fident -MMD -MP -MF"GranTurismOgre.d" -MT"GranTurismOgre.d" -o"GranTurismOgre.o" "../GranTurismOgre.cpp"
In file included from C:/ogreode/ogreode/include/OgreOde_Core.h:9,
from ../GranTurismOgre.h:2,
from ../GranTurismOgre.cpp:1:
C:/ogreode/ogreode/include/OgreOdeJoint.h:45: error: `dJointTypePlane2D' was not declared in this scope
C:/ogreode/ogreode/include/OgreOdeJoint.h:45: error: enumerator value for `Type_PlanarJoint' not integer constant
In file included from C:/ogreode/ogreode/include/OgreOde_Core.h:11,
from ../GranTurismOgre.h:2,
from ../GranTurismOgre.cpp:1:
C:/ogreode/ogreode/include/OgreOdeGeometry.h:31: error: `dCapsuleClass' was not declared in this scope
C:/ogreode/ogreode/include/OgreOdeGeometry.h:31: error: enumerator value for `Class_Capsule' not integer constant
C:/ogreode/ogreode/include/OgreOdeGeometry.h:36: error: `dHeightfieldClass' was not declared in this scope
C:/ogreode/ogreode/include/OgreOdeGeometry.h:36: error: enumerator value for `Class_Terrain' not integer constant
C:/ogreode/ogreode/include/OgreOdeGeometry.h:37: error: `dConvexClass' was not declared in this scope
C:/ogreode/ogreode/include/OgreOdeGeometry.h:37: error: enumerator value for `Class_Convex' not integer constant
make: *** [GranTurismOgre.o] Error 1
make: Target `all' not remade because of errors.
Build complete for project ODE


What tha could be?

Why must I include the "$(OGRE_ODE)\prefab\lib\Release for example if there is nothing in this folder, just a keep.me file?

tuan kuranes

12-01-2007 16:33:18

if dJointTypePlane2D is not declared that means you doesn't include the good ODE, but the one shipped with Ogre. Make sure the good ODE include directory is first in list.

$(OGRE_ODE)\prefab\lib\Release is for linking not including.

Anonymous

12-01-2007 17:40:25

if dJointTypePlane2D is not declared that means you doesn't include the good ODE, but the one shipped with Ogre. Make sure the good ODE include directory is first in list.

$(OGRE_ODE)\prefab\lib\Release is for linking not including.


I'm running over release manage project under eclipse... and I'm using this order in the Include/Library path and search:

[Include paths (-l)]
"C:\ogrenew\ogreaddons\ogreode\ode\include\ode"
"C:\ogrenew\OgreMain\include"
"C:\ogrenew\Samples\Common\include"
"C:\ogrenew\ogreaddons\ogreode\include"
"C:\ogrenew\ogreaddons\ogreode\prefab\include"
"C:\ogrenew\ogreaddons\ogreode\loader\include"


[Libraries (-l)]
ode
OgreMain
OgreOde_Core
OgreOde_Prefab
OgreOde_Prefab


[Library search path (-L)
"C:\ogrenew\ogreaddons\ogreode\lib\Release"
"C:\ogrenew\ogreaddons\ogreode\prefab\lib\Release"
"C:\ogrenew\OgreMain\lib\Release"

Why does the order of foders modify the things?
The ode I downloaded is the last one: ode.07

The ""C:\ogrenew\ogreaddons\ogreode\ode\include\ode"" is the placed the ode-win32-0.7

:oops: :oops: :oops: :shock: :shock: :shock:

tuan kuranes

12-01-2007 17:57:51

I'm not sure for eclispe but others use include folder order to determin which include is to be used, first listed is used.

Isn't ogre dependency include folder or library folder somewhere ?

Another way to make sure would be to remove any ode include from Ogre dependency folder and make sure there is only one ode include folder.

Anonymous

12-01-2007 20:49:58

I'm not sure for eclispe but others use include folder order to determin which include is to be used, first listed is used.

Isn't ogre dependency include folder or library folder somewhere ?

Another way to make sure would be to remove any ode include from Ogre dependency folder and make sure there is only one ode include folder.


Tuan kuranes, the dependency include folder and library is right.

I'm running ogre under Ogre3dSDK + Stlport.
So I configure the Ogre3d main files at C:\OgreSDK\include and C:\OgreSDK\samples\include
I've already compiled some examples on it and worked well.

Is there any problem using that not using the ogre3d source?

the problem:

In file included from C:/ogrenew/ogreaddons/ogreode/include/OgreOde_Core.h:9,
from ../GranTurismOgre.h:2,
from ../GranTurismOgre.cpp:1:
C:/ogrenew/ogreaddons/ogreode/include/OgreOdeJoint.h:45: error: `dJointTypePlane2D' was not declared in this scope



Man, I have a weird questions:

Why do you ask me to put the ode\include and ode\lib\debug <or release>, directory in the first of the list if the problem is with: OgreOdeJoint.h, that does not exist on ode/include folder?
What is more weird is that the "nikki" found the same problem as me, and put the ode\include and lib directories and that solved his problem.

tuan kuranes

16-01-2007 14:20:50

Tuan kuranes, the dependency include folder and library is right
obviously not.
Otherwise it wouldn't try to include the wrong ODE header file. (check http://www.ogre3d.org/phpBB2addons/view ... 8612#18612 )

I've already compiled some examples on it and worked well.
Ogre samples use OLD ode library (0.5).
OgreOde need Latest ode library (0.7).

Why do you ask me to put the ode\include and ode\lib\debug <or release>, directory in the first of the list if the problem is with: OgreOdeJoint.h, that does not exist on ode/include folder?
because problem is not OgreOdeJoint.h, but ODE header needed by OgreOdeJoint.h
What is more weird is that the "nikki" found the same problem as me, and put the ode\include and lib directories and that solved his problem.
he did put the GOOD ode\include and lib directories. That's the whole point.