Page 1 of 1

Problems compiling OGREODE [Solved]

Posted: Tue Feb 22, 2005 5:18 pm
by japito
Compilando...
OgreOdeWorld.cpp
..\..\include\OgreOdeJoint.h(46) : error C2065: 'dJointTypePlane2D' : identificador no declarado
..\..\include\OgreOdeGeometry.h(31) : error C2065: 'dTerrainCallbackClass' : identificador no declarado
OgreOdeUtility.cpp
OgreOdeStepper.cpp
OgreOdeSpace.cpp
..\..\include\OgreOdeGeometry.h(31) : error C2065: 'dTerrainCallbackClass' : identificador no declarado
OgreOdeMass.cpp
OgreOdeMaintainedList.cpp
OgreOdeJoint.cpp
..\..\include\OgreOdeJoint.h(46) : error C2065: 'dJointTypePlane2D' : identificador no declarado
\OGRE\OGRE 1.0 RC1\ogrenew\OgreOde\src\OgreOdeJoint.cpp(676) : error C3861: 'dJointCreatePlane2D': no se encontró el identificador, ni siquiera con búsqueda dependiente de argumentos
\OGRE\OGRE 1.0 RC1\ogrenew\OgreOde\src\OgreOdeJoint.cpp(682) : error C3861: 'dJointSetPlane2DXParam': no se encontró el identificador, ni siquiera con búsqueda dependiente de argumentos
\OGRE\OGRE 1.0 RC1\ogrenew\OgreOde\src\OgreOdeJoint.cpp(687) : error C3861: 'dJointSetPlane2DYParam': no se encontró el identificador, ni siquiera con búsqueda dependiente de argumentos
\OGRE\OGRE 1.0 RC1\ogrenew\OgreOde\src\OgreOdeJoint.cpp(692) : error C3861: 'dJointSetPlane2DAngleParam': no se encontró el identificador, ni siquiera con búsqueda dependiente de argumentos
OgreOdeGeometry.cpp
..\..\include\OgreOdeGeometry.h(31) : error C2065: 'dTerrainCallbackClass' : identificador no declarado
\OGRE\OGRE 1.0 RC1\ogrenew\OgreOde\src\OgreOdeGeometry.cpp(732) : error C3861: 'dCreateTerrainCallback': no se encontró el identificador, ni siquiera con búsqueda dependiente de argumentos
\OGRE\OGRE 1.0 RC1\ogrenew\OgreOde\src\OgreOdeGeometry.cpp(743) : error C3861: 'dGeomTerrainCallbackPointDepth': no se encontró el identificador, ni siquiera con búsqueda dependiente de argumentos
\OGRE\OGRE 1.0 RC1\ogrenew\OgreOde\src\OgreOdeGeometry.cpp(749) : error C3861: 'dGeomTerrainCallbackSetHeightCallback': no se encontró el identificador, ni siquiera con búsqueda dependiente de argumentos
OgreOdeEntityInformer.cpp
..\..\include\OgreOdeGeometry.h(31) : error C2065: 'dTerrainCallbackClass' : identificador no declarado
OgreOdeEigenSolver.cpp
OgreOdeDebugObject.cpp
OgreOdeCollision.cpp
..\..\include\OgreOdeGeometry.h(31) : error C2065: 'dTerrainCallbackClass' : identificador no declarado
OgreOdeBody.cpp
..\..\include\OgreOdeGeometry.h(31) : error C2065: 'dTerrainCallbackClass' : identificador no declarado

Something like this:
Compiling...
OgreOdeWorld.cpp
..\..\include\OgreOdeJoint.h(46) : error C2065: 'dJointTypePlane2D' : identifier not declared
..\..\include\OgreOdeGeometry.h(31) : error C2065: 'dTerrainCallbackClass' : identifier not declared
OgreOdeUtility.cpp
OgreOdeStepper.cpp
OgreOdeSpace.cpp
..\..\include\OgreOdeGeometry.h(31) : error C2065: 'dTerrainCallbackClass' : identifier not declared
OgreOdeMass.cpp
OgreOdeMaintainedList.cpp
OgreOdeJoint.cpp
..\..\include\OgreOdeJoint.h(46) : error C2065: 'dJointTypePlane2D' : identifier not declared
\OGRE\OGRE 1.0 RC1\ogrenew\OgreOde\src\OgreOdeJoint.cpp(676) : error C3861: 'dJointCreatePlane2D': the identifier was not found, ni siquiera con búsqueda dependiente de argumentos
\OGRE\OGRE 1.0 RC1\ogrenew\OgreOde\src\OgreOdeJoint.cpp(682) : error C3861: 'dJointSetPlane2DXParam': the identifier was not found, not even with dependent search of arguments
\OGRE\OGRE 1.0 RC1\ogrenew\OgreOde\src\OgreOdeJoint.cpp(687) : error C3861: 'dJointSetPlane2DYParam': the identifier was not found, not even with dependent search of arguments
\OGRE\OGRE 1.0 RC1\ogrenew\OgreOde\src\OgreOdeJoint.cpp(692) : error C3861: 'dJointSetPlane2DAngleParam': the identifier was not found, not even with dependent search of arguments
OgreOdeGeometry.cpp
..\..\include\OgreOdeGeometry.h(31) : error C2065: 'dTerrainCallbackClass' : identifier not declared
\OGRE\OGRE 1.0 RC1\ogrenew\OgreOde\src\OgreOdeGeometry.cpp(732) : error C3861: 'dCreateTerrainCallback': the identifier was not found, not even with dependent search of arguments
\OGRE\OGRE 1.0 RC1\ogrenew\OgreOde\src\OgreOdeGeometry.cpp(743) : error C3861: 'dGeomTerrainCallbackPointDepth': the identifier was not found, not even with dependent search of arguments
\OGRE\OGRE 1.0 RC1\ogrenew\OgreOde\src\OgreOdeGeometry.cpp(749) : error C3861: 'dGeomTerrainCallbackSetHeightCallback': the identifier was not found, not even with dependent search of arguments
OgreOdeEntityInformer.cpp
..\..\include\OgreOdeGeometry.h(31) : error C2065: 'dTerrainCallbackClass' : identifier not declared
OgreOdeEigenSolver.cpp
OgreOdeDebugObject.cpp
OgreOdeCollision.cpp
..\..\include\OgreOdeGeometry.h(31) : error C2065: 'dTerrainCallbackClass' : identifier not declared
OgreOdeBody.cpp
..\..\include\OgreOdeGeometry.h(31) : error C2065: 'dTerrainCallbackClass' : identifier not declared


Thanks in advance.

Posted: Tue Feb 22, 2005 5:25 pm
by monster
You haven't made the changes to ODE that are detailed in the readme files.

Either do that, or undefine the variables that include these extra features.

Posted: Tue Feb 22, 2005 5:30 pm
by japito
You are right ... \OgreOde\ode-0.5\contrib is the key ;)

Posted: Tue Feb 22, 2005 10:47 pm
by japito
All compiles without errors but...
Vinculando...
Creando biblioteca ..\..\lib\Release/OgreOde_Core.lib y objeto ..\..\lib\Release/OgreOde_Core.exp
OgreOdeGeometry.obj : error LNK2001: símbolo externo _dGeomTerrainCallbackPointDepth sin resolver
OgreOdeGeometry.obj : error LNK2001: símbolo externo _dCreateTerrainCallback sin resolver
OgreOdeGeometry.obj : error LNK2001: símbolo externo _dGeomTerrainCallbackSetHeightCallback not resolved
ode.lib(collision_kernel.obj) : error LNK2001: símbolo externo "int __cdecl dCollideTerrainCallback(struct dxGeom *,struct dxGeom *,int,struct dContactGeom *,int)" (?dCollideTerrainCallback@@YAHPAUdxGeom@@0HPAUdContactGeom@@H@Z) sin resolver
..\..\lib\Release/OgreOde_Core.dll : fatal error LNK1120: 4 externos sin resolver

Something like:
Linking...
Making Libraries ..\..\lib\Release/OgreOde_Core.lib and object ..\..\lib\Release/OgreOde_Core.exp
OgreOdeGeometry.obj : error LNK2001: extern symbol _dGeomTerrainCallbackPointDepth sin resolver
OgreOdeGeometry.obj : error LNK2001: extern symbol _dCreateTerrainCallback not resolved
OgreOdeGeometry.obj : error LNK2001: extern symbol _dGeomTerrainCallbackSetHeightCallback not resolved
ode.lib(collision_kernel.obj) : error LNK2001: extern symbol "int __cdecl dCollideTerrainCallback(struct dxGeom *,struct dxGeom *,int,struct dContactGeom *,int)" (?dCollideTerrainCallback@@YAHPAUdxGeom@@0HPAUdContactGeom@@H@Z) not resolved
..\..\lib\Release/OgreOde_Core.dll : fatal error LNK1120: 4 extern not resolved

Thanks in advance.

Posted: Tue Feb 22, 2005 10:54 pm
by japito
Solution: add \ode-0.5\ode\src\dTerrainCallback.cpp to your project if you are compiling width VS.

Posted: Wed Feb 23, 2005 12:54 am
by monster
Yep, or just add it to the makfile like it says in the instructions and build ODE from the command line.