Problem with compilation OgreODE

Chernetcov

16-02-2009 21:48:20

Good day!

I Installed OgreSDk 1.6.1, downloaded from http://tuan.kuranes.free.fr/Ogre.html#OgreOde
and installed OgreOde SDk.
Now I try to compile OgreOde. I have eliminated some errors independently, but there is one error that I can'n eliminate.
When I compiled OgreOde_Core I got some errors:
..\..\src\OgreOdeGeometry.cpp(295) : warning C4800: 'int' : forcing value to bool 'true' or 'false' (performance warning)
OgreOdeEntityInformer.cpp
..\..\src\OgreOdeEntityInformer.cpp(340) : error C2259: 'OgreOde::Body' : cannot instantiate abstract class
due to following members:
'void Ogre::MovableObject::visitRenderables(Ogre::Renderable::Visitor *,bool)' : is abstract
d:\data\ogresdk\include\OgreMovableObject.h(484) : see declaration of 'Ogre::MovableObject::visitRenderables'
..\..\src\OgreOdeEntityInformer.cpp(361) : error C2259: 'OgreOde::Body' : cannot instantiate abstract class
due to following members:
'void Ogre::MovableObject::visitRenderables(Ogre::Renderable::Visitor *,bool)' : is abstract
d:\data\ogresdk\include\OgreMovableObject.h(484) : see declaration of 'Ogre::MovableObject::visitRenderables'
OgreOdeEigenSolver.cpp
OgreOdeDebugObject.cpp
OgreOdeDebugContact.cpp
..\..\src\OgreOdeDebugContact.cpp(48) : error C2259: 'OgreOde::DebugContactText' : cannot instantiate abstract class
due to following members:
'void Ogre::MovableObject::visitRenderables(Ogre::Renderable::Visitor *,bool)' : is abstract
d:\data\ogresdk\include\OgreMovableObject.h(484) : see declaration of 'Ogre::MovableObject::visitRenderables'


I solve this problem as described in http://www.ogre3d.org/wiki/index.php/Compile_OgreOde#Ogre_Ode_Core
but got one error that I can't solve
data\ogresdk\include\OgreMovableObject.h(487) : error C2253: 'Ogre::MovableObject::visitRenderables' : pure specifier or abstract override specifier only allowed on virtual function

May be these error appears because of version of OgreSDK, but I try to use newest version if it is possible.
Can anybody explain my error or offer his resolve?

jacmoe

16-02-2009 22:12:53

It probably means that you need to implement the function in question, ie visitRenderables.
Every Renderable needs to have it, even though it does nothing.

dermont

16-02-2009 23:32:22

Do NOT change ogremovableobject.h, the instructions in the wiki are nonsense.

The OgreOde SDK is outdated, download and build:
- the latest version of ode
- svn trunk OgreOde
http://ogreaddons.svn.sourceforge.net/v ... k/ogreode/

Chernetcov

17-02-2009 02:12:14

jacmoe, dermont , thank you very much!
With new versions of OgreODE and ODE all compilled successful.

toum

28-02-2009 16:52:05

jacmoe, dermont , thank you very much!
With new versions of OgreODE and ODE all compilled successful.


Do you compile ode with visual c++ or codeblocks?

Could you explain your step to compile ogreode?

I have

Ogre 1.6.1
OgreOde (Lastest SVN trunk)
ode 0.11

I can't compile.... using codeblocks

Thanks for support,

Toum

Chernetcov

02-03-2009 14:11:07

I use Microsoft Visual Studio 2008 C++.
1. I downloaded OgreODE from link in dermont's post
2. I downloaded ODE from http://surfnet.dl.sourceforge.net/sourceforge/opende/ode-0.11.zip
3. I compiled ODE. May it is important - I used ode_singled.lib.
4. I compiled OgreODE. I used help from http://www.ogre3d.org/wiki/index.php/OgreODE.
I had some compilation errors but found all solutions in Internet.
Write errors, that you got. May be I will help you or explain my installation steps in detail.

toum

02-03-2009 18:24:36

I use Microsoft Visual Studio 2008 C++.
1. I downloaded OgreODE from link in dermont's post
2. I downloaded ODE from http://surfnet.dl.sourceforge.net/sourceforge/opende/ode-0.11.zip
3. I compiled ODE. May it is important - I used ode_singled.lib.
4. I compiled OgreODE. I used help from http://www.ogre3d.org/wiki/index.php/OgreODE.
I had some compilation errors but found all solutions in Internet.
Write errors, that you got. May be I will help you or explain my installation steps in detail.



Oh ok, thanks for reply.
I'am not using VS C++ 2008 because of i never success to compile my first ogre app within.
I'am using codeblock. I will try with asap.

Thanks for support chernetcov !!

markjco

07-02-2010 03:52:52

Hi,

I compiled ode0.11 in releasedouble.lib and followed instruction in the wiki except changing the source codes of OgreMovableObject.h when I compile OgreOde_source, i get these errors.

My Ogre SDK is Shoggoth, 1.6.5 and the directory is separated from ogreode, but it is linked and included properly.
1>Linking...
1>ode_doubled.lib(mass.obj) : error LNK2005: _dMassCheck already defined in ode.lib(mass.obj)
1>ode_doubled.lib(mass.obj) : error LNK2005: _dMassSetZero already defined in ode.lib(mass.obj)
1>ode_doubled.lib(mass.obj) : error LNK2005: _dMassSetParameters already defined in ode.lib(mass.obj)
1>ode_doubled.lib(mass.obj) : error LNK2005: _dMassSetSphere already defined in ode.lib(mass.obj)
1>ode_doubled.lib(mass.obj) : error LNK2005: _dMassSetSphereTotal already defined in ode.lib(mass.obj)
1>ode_doubled.lib(mass.obj) : error LNK2005: _dMassSetCapsule already defined in ode.lib(mass.obj)
1>ode_doubled.lib(mass.obj) : error LNK2005: _dMassSetCapsuleTotal already defined in ode.lib(mass.obj)
1>ode_doubled.lib(mass.obj) : error LNK2005: _dMassSetCylinder already defined in ode.lib(mass.obj)
1>ode_doubled.lib(mass.obj) : error LNK2005: _dMassSetCylinderTotal already defined in ode.lib(mass.obj)
1>ode_doubled.lib(mass.obj) : error LNK2005: _dMassSetBox already defined in ode.lib(mass.obj)
1>ode_doubled.lib(mass.obj) : error LNK2005: _dMassSetBoxTotal already defined in ode.lib(mass.obj)
1>ode_doubled.lib(mass.obj) : error LNK2005: _dMassSetTrimesh already defined in ode.lib(mass.obj)
1>ode_doubled.lib(mass.obj) : error LNK2005: _dMassSetTrimeshTotal already defined in ode.lib(mass.obj)
1>ode_doubled.lib(mass.obj) : error LNK2005: _dMassAdjust already defined in ode.lib(mass.obj)
1>ode_doubled.lib(mass.obj) : error LNK2005: _dMassTranslate already defined in ode.lib(mass.obj)
1>ode_doubled.lib(mass.obj) : error LNK2005: _dMassRotate already defined in ode.lib(mass.obj)
1>ode_doubled.lib(mass.obj) : error LNK2005: _dMassAdd already defined in ode.lib(mass.obj)
1>ode_doubled.lib(collision_space.obj) : error LNK2005: _dGeomMoved already defined in ode.lib(collision_space.obj)
1>ode_doubled.lib(collision_space.obj) : error LNK2005: "public: __thiscall dxSpace::dxSpace(struct dxSpace *)" (??0dxSpace@@QAE@PAU0@@Z) already defined in ode.lib(collision_space.obj)
1>ode_doubled.lib(collision_space.obj) : error LNK2005: "public: virtual __thiscall dxSpace::~dxSpace(void)" (??1dxSpace@@UAE@XZ) already defined in ode.lib(collision_space.obj)
1>ode_doubled.lib(collision_space.obj) : error LNK2005: "public: virtual void __thiscall dxSpace::computeAABB(void)" (?computeAABB@dxSpace@@UAEXXZ) already defined in ode.lib(collision_space.obj)
1>ode_doubled.lib(collision_space.obj) : error LNK2005: "public: void __thiscall dxSpace::setCleanup(int)" (?setCleanup@dxSpace@@QAEXH@Z) already defined in ode.lib(collision_space.obj)
1>ode_doubled.lib(collision_space.obj) : error LNK2005: "public: int __thiscall dxSpace::getCleanup(void)" (?getCleanup@dxSpace@@QAEHXZ) already defined in ode.lib(collision_space.obj)
1>ode_doubled.lib(collision_space.obj) : error LNK2005: "public: int __thiscall dxSpace::query(struct dxGeom *)" (?query@dxSpace@@QAEHPAUdxGeom@@@Z) already defined in ode.lib(collision_space.obj)
1>ode_doubled.lib(collision_space.obj) : error LNK2005: "public: int __thiscall dxSpace::getNumGeoms(void)" (?getNumGeoms@dxSpace@@QAEHXZ) already defined in ode.lib(collision_space.obj)
1>ode_doubled.lib(collision_space.obj) : error LNK2005: "public: virtual struct dxGeom * __thiscall dxSpace::getGeom(int)" (?getGeom@dxSpace@@UAEPAUdxGeom@@H@Z) already defined in ode.lib(collision_space.obj)
1>ode_doubled.lib(collision_space.obj) : error LNK2005: "public: virtual void __thiscall dxSpace::add(struct dxGeom *)" (?add@dxSpace@@UAEXPAUdxGeom@@@Z) already defined in ode.lib(collision_space.obj)
1>ode_doubled.lib(collision_space.obj) : error LNK2005: "public: virtual void __thiscall dxSpace::remove(struct dxGeom *)" (?remove@dxSpace@@UAEXPAUdxGeom@@@Z) already defined in ode.lib(collision_space.obj)
1>ode_doubled.lib(collision_space.obj) : error LNK2005: "public: virtual void __thiscall dxSpace::dirty(struct dxGeom *)" (?dirty@dxSpace@@UAEXPAUdxGeom@@@Z) already defined in ode.lib(collision_space.obj)
1>ode_doubled.lib(collision_space.obj) : error LNK2005: "public: __thiscall dxSimpleSpace::dxSimpleSpace(struct dxSpace *)" (??0dxSimpleSpace@@QAE@PAUdxSpace@@@Z) already defined in ode.lib(collision_space.obj)
1>ode_doubled.lib(collision_space.obj) : error LNK2005: "public: virtual void __thiscall dxSimpleSpace::cleanGeoms(void)" (?cleanGeoms@dxSimpleSpace@@UAEXXZ) already defined in ode.lib(collision_space.obj)
1>ode_doubled.lib(collision_space.obj) : error LNK2005: "public: virtual void __thiscall dxSimpleSpace::collide(void *,void (__cdecl*)(void *,struct dxGeom *,struct dxGeom *))" (?collide@dxSimpleSpace@@UAEXPAXP6AX0PAUdxGeom@@1@Z@Z) already defined in ode.lib(collision_space.obj)
1>ode_doubled.lib(collision_space.obj) : error LNK2005: "public: virtual void __thiscall dxSimpleSpace::collide2(void *,struct dxGeom *,void (__cdecl*)(void *,struct dxGeom *,struct dxGeom *))" (?collide2@dxSimpleSpace@@UAEXPAXPAUdxGeom@@P6AX011@Z@Z) already defined in ode.lib(collision_space.obj)
1>ode_doubled.lib(collision_space.obj) : error LNK2005: "public: __thiscall dxHashSpace::dxHashSpace(struct dxSpace *)" (??0dxHashSpace@@QAE@PAUdxSpace@@@Z) already defined in ode.lib(collision_space.obj)
1>ode_doubled.lib(collision_space.obj) : error LNK2005: "public: void __thiscall dxHashSpace::setLevels(int,int)" (?setLevels@dxHashSpace@@QAEXHH@Z) already defined in ode.lib(collision_space.obj)
1>ode_doubled.lib(collision_space.obj) : error LNK2005: "public: void __thiscall dxHashSpace::getLevels(int *,int *)" (?getLevels@dxHashSpace@@QAEXPAH0@Z) already defined in ode.lib(collision_space.obj)
1>ode_doubled.lib(collision_space.obj) : error LNK2005: "public: virtual void __thiscall dxHashSpace::cleanGeoms(void)" (?cleanGeoms@dxHashSpace@@UAEXXZ) already defined in ode.lib(collision_space.obj)
1>ode_doubled.lib(collision_space.obj) : error LNK2005: "public: virtual void __thiscall dxHashSpace::collide(void *,void (__cdecl*)(void *,struct dxGeom *,struct dxGeom *))" (?collide@dxHashSpace@@UAEXPAXP6AX0PAUdxGeom@@1@Z@Z) already defined in ode.lib(collision_space.obj)
1>ode_doubled.lib(collision_space.obj) : error LNK2005: "public: virtual void __thiscall dxHashSpace::collide2(void *,struct dxGeom *,void (__cdecl*)(void *,struct dxGeom *,struct dxGeom *))" (?collide2@dxHashSpace@@UAEXPAXPAUdxGeom@@P6AX011@Z@Z) already defined in ode.lib(collision_space.obj)
1>ode_doubled.lib(collision_space.obj) : error LNK2005: _dSimpleSpaceCreate already defined in ode.lib(collision_space.obj)
1>ode_doubled.lib(collision_space.obj) : error LNK2005: _dHashSpaceCreate already defined in ode.lib(collision_space.obj)
1>ode_doubled.lib(collision_space.obj) : error LNK2005: _dHashSpaceSetLevels already defined in ode.lib(collision_space.obj)
1>ode_doubled.lib(collision_space.obj) : error LNK2005: _dHashSpaceGetLevels already defined in ode.lib(collision_space.obj)
1>ode_doubled.lib(collision_space.obj) : error LNK2005: _dSpaceDestroy already defined in ode.lib(collision_space.obj)
1>ode_doubled.lib(collision_space.obj) : error LNK2005: _dSpaceSetCleanup already defined in ode.lib(collision_space.obj)
1>ode_doubled.lib(collision_space.obj) : error LNK2005: _dSpaceGetCleanup already defined in ode.lib(collision_space.obj)
1>ode_doubled.lib(collision_space.obj) : error LNK2005: _dSpaceAdd already defined in ode.lib(collision_space.obj)
1>ode_doubled.lib(collision_space.obj) : error LNK2005: _dSpaceRemove already defined in ode.lib(collision_space.obj)
1>ode_doubled.lib(collision_space.obj) : error LNK2005: _dSpaceQuery already defined in ode.lib(collision_space.obj)
1>ode_doubled.lib(collision_space.obj) : error LNK2005: _dSpaceClean already defined in ode.lib(collision_space.obj)
1>ode_doubled.lib(collision_space.obj) : error LNK2005: _dSpaceGetNumGeoms already defined in ode.lib(collision_space.obj)
1>ode_doubled.lib(collision_space.obj) : error LNK2005: _dSpaceGetGeom already defined in ode.lib(collision_space.obj)
1>ode_doubled.lib(collision_space.obj) : error LNK2005: _dSpaceCollide already defined in ode.lib(collision_space.obj)
1>ode_doubled.lib(collision_space.obj) : error LNK2005: _dSpaceCollide2 already defined in ode.lib(collision_space.obj)
1>ode_doubled.lib(odeinit.obj) : error LNK2005: _dInitODE already defined in ode.lib(collision_kernel.obj)
1>ode_doubled.lib(odeinit.obj) : error LNK2005: _dCloseODE already defined in ode.lib(collision_kernel.obj)
1>ode_doubled.lib(collision_kernel.obj) : error LNK2005: "void __cdecl dClearPosrCache(void)" (?dClearPosrCache@@YAXXZ) already defined in ode.lib(collision_kernel.obj)
1>ode_doubled.lib(collision_kernel.obj) : error LNK2005: _dCollide already defined in ode.lib(collision_kernel.obj)
1>ode_doubled.lib(collision_kernel.obj) : error LNK2005: "public: __thiscall dxGeom::dxGeom(struct dxSpace *,int)" (??0dxGeom@@QAE@PAUdxSpace@@H@Z) already defined in ode.lib(collision_kernel.obj)
1>ode_doubled.lib(collision_kernel.obj) : error LNK2005: "public: virtual __thiscall dxGeom::~dxGeom(void)" (??1dxGeom@@UAE@XZ) already defined in ode.lib(collision_kernel.obj)
1>ode_doubled.lib(collision_kernel.obj) : error LNK2005: "public: void __thiscall dxGeom::bodyRemove(void)" (?bodyRemove@dxGeom@@QAEXXZ) already defined in ode.lib(collision_kernel.obj)
1>ode_doubled.lib(collision_kernel.obj) : error LNK2005: "void __cdecl getBodyPosr(struct dxPosR const &,struct dxPosR const &,struct dxPosR &)" (?getBodyPosr@@YAXABUdxPosR@@0AAU1@@Z) already defined in ode.lib(collision_kernel.obj)
1>ode_doubled.lib(collision_kernel.obj) : error LNK2005: "void __cdecl getWorldOffsetPosr(struct dxPosR const &,struct dxPosR const &,struct dxPosR &)" (?getWorldOffsetPosr@@YAXABUdxPosR@@0AAU1@@Z) already defined in ode.lib(collision_kernel.obj)
1>ode_doubled.lib(collision_kernel.obj) : error LNK2005: "public: void __thiscall dxGeom::computePosr(void)" (?computePosr@dxGeom@@QAEXXZ) already defined in ode.lib(collision_kernel.obj)
1>ode_doubled.lib(collision_kernel.obj) : error LNK2005: _dGeomGetBodyNext already defined in ode.lib(collision_kernel.obj)
1>ode_doubled.lib(collision_kernel.obj) : error LNK2005: _dGeomDestroy already defined in ode.lib(collision_kernel.obj)
1>ode_doubled.lib(collision_kernel.obj) : error LNK2005: _dGeomSetData already defined in ode.lib(collision_kernel.obj)
1>ode_doubled.lib(collision_kernel.obj) : error LNK2005: _dGeomGetData already defined in ode.lib(collision_kernel.obj)
1>ode_doubled.lib(collision_kernel.obj) : error LNK2005: _dGeomSetBody already defined in ode.lib(collision_kernel.obj)
1>ode_doubled.lib(collision_kernel.obj) : error LNK2005: _dGeomGetBody already defined in ode.lib(collision_kernel.obj)
1>ode_doubled.lib(collision_kernel.obj) : error LNK2005: _dGeomSetPosition already defined in ode.lib(collision_kernel.obj)
1>ode_doubled.lib(collision_kernel.obj) : error LNK2005: _dGeomSetRotation already defined in ode.lib(collision_kernel.obj)
1>ode_doubled.lib(collision_kernel.obj) : error LNK2005: _dGeomSetQuaternion already defined in ode.lib(collision_kernel.obj)
1>ode_doubled.lib(collision_kernel.obj) : error LNK2005: _dGeomGetPosition already defined in ode.lib(collision_kernel.obj)
1>ode_doubled.lib(collision_kernel.obj) : error LNK2005: _dGeomCopyPosition already defined in ode.lib(collision_kernel.obj)
1>ode_doubled.lib(collision_kernel.obj) : error LNK2005: _dGeomGetRotation already defined in ode.lib(collision_kernel.obj)
1>ode_doubled.lib(collision_kernel.obj) : error LNK2005: _dGeomCopyRotation already defined in ode.lib(collision_kernel.obj)
1>ode_doubled.lib(collision_kernel.obj) : error LNK2005: _dGeomGetQuaternion already defined in ode.lib(collision_kernel.obj)
1>ode_doubled.lib(collision_kernel.obj) : error LNK2005: _dGeomGetAABB already defined in ode.lib(collision_kernel.obj)
1>ode_doubled.lib(collision_kernel.obj) : error LNK2005: _dGeomIsSpace already defined in ode.lib(collision_kernel.obj)
1>ode_doubled.lib(collision_kernel.obj) : error LNK2005: _dGeomGetSpace already defined in ode.lib(collision_kernel.obj)
1>ode_doubled.lib(collision_kernel.obj) : error LNK2005: _dGeomGetClass already defined in ode.lib(collision_kernel.obj)
1>ode_doubled.lib(collision_kernel.obj) : error LNK2005: _dGeomSetCategoryBits already defined in ode.lib(collision_kernel.obj)
1>ode_doubled.lib(collision_kernel.obj) : error LNK2005: _dGeomSetCollideBits already defined in ode.lib(collision_kernel.obj)
1>ode_doubled.lib(collision_kernel.obj) : error LNK2005: _dGeomGetCategoryBits already defined in ode.lib(collision_kernel.obj)
1>ode_doubled.lib(collision_kernel.obj) : error LNK2005: _dGeomGetCollideBits already defined in ode.lib(collision_kernel.obj)
1>ode_doubled.lib(collision_kernel.obj) : error LNK2005: _dGeomEnable already defined in ode.lib(collision_kernel.obj)
1>ode_doubled.lib(collision_kernel.obj) : error LNK2005: _dGeomDisable already defined in ode.lib(collision_kernel.obj)
1>ode_doubled.lib(collision_kernel.obj) : error LNK2005: _dGeomIsEnabled already defined in ode.lib(collision_kernel.obj)
1>ode_doubled.lib(collision_kernel.obj) : error LNK2005: "public: __thiscall dxUserGeom::dxUserGeom(int)" (??0dxUserGeom@@QAE@H@Z) already defined in ode.lib(collision_kernel.obj)
1>ode_doubled.lib(collision_kernel.obj) : error LNK2005: "public: virtual __thiscall dxUserGeom::~dxUserGeom(void)" (??1dxUserGeom@@UAE@XZ) already defined in ode.lib(collision_kernel.obj)
1>ode_doubled.lib(collision_kernel.obj) : error LNK2005: "public: virtual void __thiscall dxUserGeom::computeAABB(void)" (?computeAABB@dxUserGeom@@UAEXXZ) already defined in ode.lib(collision_kernel.obj)
1>ode_doubled.lib(collision_kernel.obj) : error LNK2005: _dCreateGeomClass already defined in ode.lib(collision_kernel.obj)
1>ode_doubled.lib(collision_kernel.obj) : error LNK2005: _dGeomGetClassData already defined in ode.lib(collision_kernel.obj)
1>ode_doubled.lib(collision_kernel.obj) : error LNK2005: _dCreateGeom already defined in ode.lib(collision_kernel.obj)
1>ode_doubled.lib(collision_kernel.obj) : error LNK2005: "void __cdecl dGeomCreateOffset(struct dxGeom *)" (?dGeomCreateOffset@@YAXPAUdxGeom@@@Z) already defined in ode.lib(collision_kernel.obj)
1>ode_doubled.lib(collision_kernel.obj) : error LNK2005: _dGeomSetOffsetPosition already defined in ode.lib(collision_kernel.obj)
1>ode_doubled.lib(collision_kernel.obj) : error LNK2005: _dGeomSetOffsetRotation already defined in ode.lib(collision_kernel.obj)
1>ode_doubled.lib(collision_kernel.obj) : error LNK2005: _dGeomSetOffsetQuaternion already defined in ode.lib(collision_kernel.obj)
1>ode_doubled.lib(collision_kernel.obj) : error LNK2005: _dGeomSetOffsetWorldPosition already defined in ode.lib(collision_kernel.obj)
1>ode_doubled.lib(collision_kernel.obj) : error LNK2005: _dGeomSetOffsetWorldRotation already defined in ode.lib(collision_kernel.obj)
1>ode_doubled.lib(collision_kernel.obj) : error LNK2005: _dGeomSetOffsetWorldQuaternion already defined in ode.lib(collision_kernel.obj)
1>ode_doubled.lib(collision_kernel.obj) : error LNK2005: _dGeomClearOffset already defined in ode.lib(collision_kernel.obj)
1>ode_doubled.lib(collision_kernel.obj) : error LNK2005: _dGeomIsOffset already defined in ode.lib(collision_kernel.obj)
1>ode_doubled.lib(collision_kernel.obj) : error LNK2005: _dGeomGetOffsetPosition already defined in ode.lib(collision_kernel.obj)
1>ode_doubled.lib(collision_kernel.obj) : error LNK2005: _dGeomCopyOffsetPosition already defined in ode.lib(collision_kernel.obj)
1>ode_doubled.lib(collision_kernel.obj) : error LNK2005: _dGeomGetOffsetRotation already defined in ode.lib(collision_kernel.obj)
1>ode_doubled.lib(collision_kernel.obj) : error LNK2005: _dGeomCopyOffsetRotation already defined in ode.lib(collision_kernel.obj)
1>ode_doubled.lib(collision_kernel.obj) : error LNK2005: _dGeomGetOffsetQuaternion already defined in ode.lib(collision_kernel.obj)
1> Creating library ..\..\lib\Debug/OgreOde_Core_d.lib and object ..\..\lib\Debug/OgreOde_Core_d.exp
1>LINK : warning LNK4098: defaultlib 'MSVCRT' conflicts with use of other libs; use /NODEFAULTLIB:library
1>OgreOdeWorld.obj : error LNK2001: unresolved external symbol "public: virtual __thiscall OgreOde::TriangleMeshData::~TriangleMeshData(void)" (??1TriangleMeshData@OgreOde@@UAE@XZ)
1>OgreOdeGeometry.obj : error LNK2001: unresolved external symbol "public: virtual __thiscall OgreOde::TriangleMeshData::~TriangleMeshData(void)" (??1TriangleMeshData@OgreOde@@UAE@XZ)
1>OgreOdeJoint.obj : error LNK2001: unresolved external symbol "public: virtual __thiscall OgreOde::TriangleMeshData::~TriangleMeshData(void)" (??1TriangleMeshData@OgreOde@@UAE@XZ)
1>OgreOdeSpace.obj : error LNK2001: unresolved external symbol "public: virtual __thiscall OgreOde::TriangleMeshData::~TriangleMeshData(void)" (??1TriangleMeshData@OgreOde@@UAE@XZ)
1>OgreOdeStepper.obj : error LNK2001: unresolved external symbol "public: virtual __thiscall OgreOde::TriangleMeshData::~TriangleMeshData(void)" (??1TriangleMeshData@OgreOde@@UAE@XZ)
1>OgreOdeBody.obj : error LNK2019: unresolved external symbol "public: virtual __thiscall OgreOde::TriangleMeshData::~TriangleMeshData(void)" (??1TriangleMeshData@OgreOde@@UAE@XZ) referenced in function "public: virtual void * __thiscall OgreOde::TriangleMeshData::`scalar deleting destructor'(unsigned int)" (??_GTriangleMeshData@OgreOde@@UAEPAXI@Z)
1>OgreOdeCollision.obj : error LNK2001: unresolved external symbol "public: virtual __thiscall OgreOde::TriangleMeshData::~TriangleMeshData(void)" (??1TriangleMeshData@OgreOde@@UAE@XZ)
1>OgreOdeDebugContact.obj : error LNK2001: unresolved external symbol "public: virtual __thiscall OgreOde::TriangleMeshData::~TriangleMeshData(void)" (??1TriangleMeshData@OgreOde@@UAE@XZ)
1>OgreOdeEntityInformer.obj : error LNK2001: unresolved external symbol "public: virtual __thiscall OgreOde::TriangleMeshData::~TriangleMeshData(void)" (??1TriangleMeshData@OgreOde@@UAE@XZ)
1>OgreOdeEntityInformer.obj : error LNK2019: unresolved external symbol "public: void __thiscall OgreOde::TriangleMeshDataManager::addTriangleMeshData(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class OgreOde::TriangleMeshDataPtr,class Ogre::Vector3)" (?addTriangleMeshData@TriangleMeshDataManager@OgreOde@@QAEXABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@VTriangleMeshDataPtr@2@VVector3@Ogre@@@Z) referenced in function "public: __thiscall OgreOde::EntityInformerReuse::EntityInformerReuse(class Ogre::Entity *,class Ogre::Vector3 const &,bool)" (??0EntityInformerReuse@OgreOde@@QAE@PAVEntity@Ogre@@ABVVector3@3@_N@Z)
1>OgreOdeEntityInformer.obj : error LNK2019: unresolved external symbol "public: __thiscall OgreOde::TriangleMeshData::TriangleMeshData(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class Ogre::Vector3,class Ogre::Vector3 const *,unsigned int,unsigned int const *,unsigned int)" (??0TriangleMeshData@OgreOde@@QAE@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@VVector3@Ogre@@PBV45@IPBII@Z) referenced in function "public: __thiscall OgreOde::EntityInformerReuse::EntityInformerReuse(class Ogre::Entity *,class Ogre::Vector3 const &,bool)" (??0EntityInformerReuse@OgreOde@@QAE@PAVEntity@Ogre@@ABVVector3@3@_N@Z)
1>OgreOdeEntityInformer.obj : error LNK2019: unresolved external symbol "public: class OgreOde::TriangleMeshDataPtr __thiscall OgreOde::TriangleMeshDataManager::getTriangleMeshData(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class Ogre::Vector3)" (?getTriangleMeshData@TriangleMeshDataManager@OgreOde@@QAE?AVTriangleMeshDataPtr@2@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@VVector3@Ogre@@@Z) referenced in function "public: __thiscall OgreOde::EntityInformerReuse::EntityInformerReuse(class Ogre::Entity *,class Ogre::Vector3 const &,bool)" (??0EntityInformerReuse@OgreOde@@QAE@PAVEntity@Ogre@@ABVVector3@3@_N@Z)
1>OgreOdeEntityInformer.obj : error LNK2019: unresolved external symbol "public: static class OgreOde::TriangleMeshDataManager & __cdecl OgreOde::TriangleMeshDataManager::getSingleton(void)" (?getSingleton@TriangleMeshDataManager@OgreOde@@SAAAV12@XZ) referenced in function "public: __thiscall OgreOde::EntityInformerReuse::EntityInformerReuse(class Ogre::Entity *,class Ogre::Vector3 const &,bool)" (??0EntityInformerReuse@OgreOde@@QAE@PAVEntity@Ogre@@ABVVector3@3@_N@Z)
1>..\..\lib\Debug/OgreOde_Core_d.dll : fatal error LNK1120: 5 unresolved externals
1>Build log was saved at "file://c:\ogreode\obj\Debug\BuildLog.htm"
1>OgreOde_Core - 123 error(s), 2 warning(s)
========== Build: 0 succeeded, 1 failed, 1 up-to-date, 0 skipped ==========


Thank you in advance:D

dermont

07-02-2010 10:01:11

Hi,

I compiled ode0.11 in releasedouble.lib and followed instruction in the wiki except changing the source codes of OgreMovableObject.h when I compile OgreOde_source, i get these errors.

My Ogre SDK is Shoggoth, 1.6.5 and the directory is separated from ogreode, but it is linked and included properly.
1>Linking...
1>ode_doubled.lib(mass.obj) : error LNK2005: _dMassCheck already defined in ode.lib(mass.obj)
1>ode_doubled.lib(mass.obj) : error LNK2005: _dMassSetZero already defined in ode.lib(mass.obj)
1>ode_doubled.lib(mass.obj) : error LNK2005: _dMassSetParameters already defined in ode.lib(mass.obj)
1>ode_doubled.lib(mass.obj) : error LNK2005: _dMassSetSphere already defined in ode.lib(mass.obj)
1>ode_doubled.lib(mass.obj) : error LNK2005: _dMassSetSphereTotal already defined in ode.lib(mass.obj)
1>ode_doubled.lib(mass.obj) : error LNK2005: _dMassSetCapsule already defined in ode.lib(mass.obj)
1>ode_doubled.lib(mass.obj) : error LNK2005: _dMassSetCapsuleTotal already defined in ode.lib(mass.obj)
1>ode_doubled.lib(mass.obj) : error LNK2005: _dMassSetCylinder already defined in ode.lib(mass.obj)
1>ode_doubled.lib(mass.obj) : error LNK2005: _dMassSetCylinderTotal already defined in ode.lib(mass.obj)
1>ode_doubled.lib(mass.obj) : error LNK2005: _dMassSetBox already defined in ode.lib(mass.obj)
1>ode_doubled.lib(mass.obj) : error LNK2005: _dMassSetBoxTotal already defined in ode.lib(mass.obj)
1>ode_doubled.lib(mass.obj) : error LNK2005: _dMassSetTrimesh already defined in ode.lib(mass.obj)
1>ode_doubled.lib(mass.obj) : error LNK2005: _dMassSetTrimeshTotal already defined in ode.lib(mass.obj)
1>ode_doubled.lib(mass.obj) : error LNK2005: _dMassAdjust already defined in ode.lib(mass.obj)
1>ode_doubled.lib(mass.obj) : error LNK2005: _dMassTranslate already defined in ode.lib(mass.obj)
1>ode_doubled.lib(mass.obj) : error LNK2005: _dMassRotate already defined in ode.lib(mass.obj)
1>ode_doubled.lib(mass.obj) : error LNK2005: _dMassAdd already defined in ode.lib(mass.obj)
1>ode_doubled.lib(collision_space.obj) : error LNK2005: _dGeomMoved already defined in ode.lib(collision_space.obj)
1>ode_doubled.lib(collision_space.obj) : error LNK2005: "public: __thiscall dxSpace::dxSpace(struct dxSpace *)" (??0dxSpace@@QAE@PAU0@@Z) already defined in ode.lib(collision_space.obj)
1>ode_doubled.lib(collision_space.obj) : error LNK2005: "public: virtual __thiscall dxSpace::~dxSpace(void)" (??1dxSpace@@UAE@XZ) already defined in ode.lib(collision_space.obj)
1>ode_doubled.lib(collision_space.obj) : error LNK2005: "public: virtual void __thiscall dxSpace::computeAABB(void)" (?computeAABB@dxSpace@@UAEXXZ) already defined in ode.lib(collision_space.obj)
1>ode_doubled.lib(collision_space.obj) : error LNK2005: "public: void __thiscall dxSpace::setCleanup(int)" (?setCleanup@dxSpace@@QAEXH@Z) already defined in ode.lib(collision_space.obj)
1>ode_doubled.lib(collision_space.obj) : error LNK2005: "public: int __thiscall dxSpace::getCleanup(void)" (?getCleanup@dxSpace@@QAEHXZ) already defined in ode.lib(collision_space.obj)
1>ode_doubled.lib(collision_space.obj) : error LNK2005: "public: int __thiscall dxSpace::query(struct dxGeom *)" (?query@dxSpace@@QAEHPAUdxGeom@@@Z) already defined in ode.lib(collision_space.obj)
1>ode_doubled.lib(collision_space.obj) : error LNK2005: "public: int __thiscall dxSpace::getNumGeoms(void)" (?getNumGeoms@dxSpace@@QAEHXZ) already defined in ode.lib(collision_space.obj)
1>ode_doubled.lib(collision_space.obj) : error LNK2005: "public: virtual struct dxGeom * __thiscall dxSpace::getGeom(int)" (?getGeom@dxSpace@@UAEPAUdxGeom@@H@Z) already defined in ode.lib(collision_space.obj)
1>ode_doubled.lib(collision_space.obj) : error LNK2005: "public: virtual void __thiscall dxSpace::add(struct dxGeom *)" (?add@dxSpace@@UAEXPAUdxGeom@@@Z) already defined in ode.lib(collision_space.obj)
1>ode_doubled.lib(collision_space.obj) : error LNK2005: "public: virtual void __thiscall dxSpace::remove(struct dxGeom *)" (?remove@dxSpace@@UAEXPAUdxGeom@@@Z) already defined in ode.lib(collision_space.obj)
1>ode_doubled.lib(collision_space.obj) : error LNK2005: "public: virtual void __thiscall dxSpace::dirty(struct dxGeom *)" (?dirty@dxSpace@@UAEXPAUdxGeom@@@Z) already defined in ode.lib(collision_space.obj)
1>ode_doubled.lib(collision_space.obj) : error LNK2005: "public: __thiscall dxSimpleSpace::dxSimpleSpace(struct dxSpace *)" (??0dxSimpleSpace@@QAE@PAUdxSpace@@@Z) already defined in ode.lib(collision_space.obj)
1>ode_doubled.lib(collision_space.obj) : error LNK2005: "public: virtual void __thiscall dxSimpleSpace::cleanGeoms(void)" (?cleanGeoms@dxSimpleSpace@@UAEXXZ) already defined in ode.lib(collision_space.obj)
1>ode_doubled.lib(collision_space.obj) : error LNK2005: "public: virtual void __thiscall dxSimpleSpace::collide(void *,void (__cdecl*)(void *,struct dxGeom *,struct dxGeom *))" (?collide@dxSimpleSpace@@UAEXPAXP6AX0PAUdxGeom@@1@Z@Z) already defined in ode.lib(collision_space.obj)
1>ode_doubled.lib(collision_space.obj) : error LNK2005: "public: virtual void __thiscall dxSimpleSpace::collide2(void *,struct dxGeom *,void (__cdecl*)(void *,struct dxGeom *,struct dxGeom *))" (?collide2@dxSimpleSpace@@UAEXPAXPAUdxGeom@@P6AX011@Z@Z) already defined in ode.lib(collision_space.obj)
1>ode_doubled.lib(collision_space.obj) : error LNK2005: "public: __thiscall dxHashSpace::dxHashSpace(struct dxSpace *)" (??0dxHashSpace@@QAE@PAUdxSpace@@@Z) already defined in ode.lib(collision_space.obj)
1>ode_doubled.lib(collision_space.obj) : error LNK2005: "public: void __thiscall dxHashSpace::setLevels(int,int)" (?setLevels@dxHashSpace@@QAEXHH@Z) already defined in ode.lib(collision_space.obj)
1>ode_doubled.lib(collision_space.obj) : error LNK2005: "public: void __thiscall dxHashSpace::getLevels(int *,int *)" (?getLevels@dxHashSpace@@QAEXPAH0@Z) already defined in ode.lib(collision_space.obj)
1>ode_doubled.lib(collision_space.obj) : error LNK2005: "public: virtual void __thiscall dxHashSpace::cleanGeoms(void)" (?cleanGeoms@dxHashSpace@@UAEXXZ) already defined in ode.lib(collision_space.obj)
1>ode_doubled.lib(collision_space.obj) : error LNK2005: "public: virtual void __thiscall dxHashSpace::collide(void *,void (__cdecl*)(void *,struct dxGeom *,struct dxGeom *))" (?collide@dxHashSpace@@UAEXPAXP6AX0PAUdxGeom@@1@Z@Z) already defined in ode.lib(collision_space.obj)
1>ode_doubled.lib(collision_space.obj) : error LNK2005: "public: virtual void __thiscall dxHashSpace::collide2(void *,struct dxGeom *,void (__cdecl*)(void *,struct dxGeom *,struct dxGeom *))" (?collide2@dxHashSpace@@UAEXPAXPAUdxGeom@@P6AX011@Z@Z) already defined in ode.lib(collision_space.obj)
1>ode_doubled.lib(collision_space.obj) : error LNK2005: _dSimpleSpaceCreate already defined in ode.lib(collision_space.obj)
1>ode_doubled.lib(collision_space.obj) : error LNK2005: _dHashSpaceCreate already defined in ode.lib(collision_space.obj)
1>ode_doubled.lib(collision_space.obj) : error LNK2005: _dHashSpaceSetLevels already defined in ode.lib(collision_space.obj)
1>ode_doubled.lib(collision_space.obj) : error LNK2005: _dHashSpaceGetLevels already defined in ode.lib(collision_space.obj)
1>ode_doubled.lib(collision_space.obj) : error LNK2005: _dSpaceDestroy already defined in ode.lib(collision_space.obj)
1>ode_doubled.lib(collision_space.obj) : error LNK2005: _dSpaceSetCleanup already defined in ode.lib(collision_space.obj)
1>ode_doubled.lib(collision_space.obj) : error LNK2005: _dSpaceGetCleanup already defined in ode.lib(collision_space.obj)
1>ode_doubled.lib(collision_space.obj) : error LNK2005: _dSpaceAdd already defined in ode.lib(collision_space.obj)
1>ode_doubled.lib(collision_space.obj) : error LNK2005: _dSpaceRemove already defined in ode.lib(collision_space.obj)
1>ode_doubled.lib(collision_space.obj) : error LNK2005: _dSpaceQuery already defined in ode.lib(collision_space.obj)
1>ode_doubled.lib(collision_space.obj) : error LNK2005: _dSpaceClean already defined in ode.lib(collision_space.obj)
1>ode_doubled.lib(collision_space.obj) : error LNK2005: _dSpaceGetNumGeoms already defined in ode.lib(collision_space.obj)
1>ode_doubled.lib(collision_space.obj) : error LNK2005: _dSpaceGetGeom already defined in ode.lib(collision_space.obj)
1>ode_doubled.lib(collision_space.obj) : error LNK2005: _dSpaceCollide already defined in ode.lib(collision_space.obj)
1>ode_doubled.lib(collision_space.obj) : error LNK2005: _dSpaceCollide2 already defined in ode.lib(collision_space.obj)
1>ode_doubled.lib(odeinit.obj) : error LNK2005: _dInitODE already defined in ode.lib(collision_kernel.obj)
1>ode_doubled.lib(odeinit.obj) : error LNK2005: _dCloseODE already defined in ode.lib(collision_kernel.obj)
1>ode_doubled.lib(collision_kernel.obj) : error LNK2005: "void __cdecl dClearPosrCache(void)" (?dClearPosrCache@@YAXXZ) already defined in ode.lib(collision_kernel.obj)
1>ode_doubled.lib(collision_kernel.obj) : error LNK2005: _dCollide already defined in ode.lib(collision_kernel.obj)
1>ode_doubled.lib(collision_kernel.obj) : error LNK2005: "public: __thiscall dxGeom::dxGeom(struct dxSpace *,int)" (??0dxGeom@@QAE@PAUdxSpace@@H@Z) already defined in ode.lib(collision_kernel.obj)
1>ode_doubled.lib(collision_kernel.obj) : error LNK2005: "public: virtual __thiscall dxGeom::~dxGeom(void)" (??1dxGeom@@UAE@XZ) already defined in ode.lib(collision_kernel.obj)
1>ode_doubled.lib(collision_kernel.obj) : error LNK2005: "public: void __thiscall dxGeom::bodyRemove(void)" (?bodyRemove@dxGeom@@QAEXXZ) already defined in ode.lib(collision_kernel.obj)
1>ode_doubled.lib(collision_kernel.obj) : error LNK2005: "void __cdecl getBodyPosr(struct dxPosR const &,struct dxPosR const &,struct dxPosR &)" (?getBodyPosr@@YAXABUdxPosR@@0AAU1@@Z) already defined in ode.lib(collision_kernel.obj)
1>ode_doubled.lib(collision_kernel.obj) : error LNK2005: "void __cdecl getWorldOffsetPosr(struct dxPosR const &,struct dxPosR const &,struct dxPosR &)" (?getWorldOffsetPosr@@YAXABUdxPosR@@0AAU1@@Z) already defined in ode.lib(collision_kernel.obj)
1>ode_doubled.lib(collision_kernel.obj) : error LNK2005: "public: void __thiscall dxGeom::computePosr(void)" (?computePosr@dxGeom@@QAEXXZ) already defined in ode.lib(collision_kernel.obj)
1>ode_doubled.lib(collision_kernel.obj) : error LNK2005: _dGeomGetBodyNext already defined in ode.lib(collision_kernel.obj)
1>ode_doubled.lib(collision_kernel.obj) : error LNK2005: _dGeomDestroy already defined in ode.lib(collision_kernel.obj)
1>ode_doubled.lib(collision_kernel.obj) : error LNK2005: _dGeomSetData already defined in ode.lib(collision_kernel.obj)
1>ode_doubled.lib(collision_kernel.obj) : error LNK2005: _dGeomGetData already defined in ode.lib(collision_kernel.obj)
1>ode_doubled.lib(collision_kernel.obj) : error LNK2005: _dGeomSetBody already defined in ode.lib(collision_kernel.obj)
1>ode_doubled.lib(collision_kernel.obj) : error LNK2005: _dGeomGetBody already defined in ode.lib(collision_kernel.obj)
1>ode_doubled.lib(collision_kernel.obj) : error LNK2005: _dGeomSetPosition already defined in ode.lib(collision_kernel.obj)
1>ode_doubled.lib(collision_kernel.obj) : error LNK2005: _dGeomSetRotation already defined in ode.lib(collision_kernel.obj)
1>ode_doubled.lib(collision_kernel.obj) : error LNK2005: _dGeomSetQuaternion already defined in ode.lib(collision_kernel.obj)
1>ode_doubled.lib(collision_kernel.obj) : error LNK2005: _dGeomGetPosition already defined in ode.lib(collision_kernel.obj)
1>ode_doubled.lib(collision_kernel.obj) : error LNK2005: _dGeomCopyPosition already defined in ode.lib(collision_kernel.obj)
1>ode_doubled.lib(collision_kernel.obj) : error LNK2005: _dGeomGetRotation already defined in ode.lib(collision_kernel.obj)
1>ode_doubled.lib(collision_kernel.obj) : error LNK2005: _dGeomCopyRotation already defined in ode.lib(collision_kernel.obj)
1>ode_doubled.lib(collision_kernel.obj) : error LNK2005: _dGeomGetQuaternion already defined in ode.lib(collision_kernel.obj)
1>ode_doubled.lib(collision_kernel.obj) : error LNK2005: _dGeomGetAABB already defined in ode.lib(collision_kernel.obj)
1>ode_doubled.lib(collision_kernel.obj) : error LNK2005: _dGeomIsSpace already defined in ode.lib(collision_kernel.obj)
1>ode_doubled.lib(collision_kernel.obj) : error LNK2005: _dGeomGetSpace already defined in ode.lib(collision_kernel.obj)
1>ode_doubled.lib(collision_kernel.obj) : error LNK2005: _dGeomGetClass already defined in ode.lib(collision_kernel.obj)
1>ode_doubled.lib(collision_kernel.obj) : error LNK2005: _dGeomSetCategoryBits already defined in ode.lib(collision_kernel.obj)
1>ode_doubled.lib(collision_kernel.obj) : error LNK2005: _dGeomSetCollideBits already defined in ode.lib(collision_kernel.obj)
1>ode_doubled.lib(collision_kernel.obj) : error LNK2005: _dGeomGetCategoryBits already defined in ode.lib(collision_kernel.obj)
1>ode_doubled.lib(collision_kernel.obj) : error LNK2005: _dGeomGetCollideBits already defined in ode.lib(collision_kernel.obj)
1>ode_doubled.lib(collision_kernel.obj) : error LNK2005: _dGeomEnable already defined in ode.lib(collision_kernel.obj)
1>ode_doubled.lib(collision_kernel.obj) : error LNK2005: _dGeomDisable already defined in ode.lib(collision_kernel.obj)
1>ode_doubled.lib(collision_kernel.obj) : error LNK2005: _dGeomIsEnabled already defined in ode.lib(collision_kernel.obj)
1>ode_doubled.lib(collision_kernel.obj) : error LNK2005: "public: __thiscall dxUserGeom::dxUserGeom(int)" (??0dxUserGeom@@QAE@H@Z) already defined in ode.lib(collision_kernel.obj)
1>ode_doubled.lib(collision_kernel.obj) : error LNK2005: "public: virtual __thiscall dxUserGeom::~dxUserGeom(void)" (??1dxUserGeom@@UAE@XZ) already defined in ode.lib(collision_kernel.obj)
1>ode_doubled.lib(collision_kernel.obj) : error LNK2005: "public: virtual void __thiscall dxUserGeom::computeAABB(void)" (?computeAABB@dxUserGeom@@UAEXXZ) already defined in ode.lib(collision_kernel.obj)
1>ode_doubled.lib(collision_kernel.obj) : error LNK2005: _dCreateGeomClass already defined in ode.lib(collision_kernel.obj)
1>ode_doubled.lib(collision_kernel.obj) : error LNK2005: _dGeomGetClassData already defined in ode.lib(collision_kernel.obj)
1>ode_doubled.lib(collision_kernel.obj) : error LNK2005: _dCreateGeom already defined in ode.lib(collision_kernel.obj)
1>ode_doubled.lib(collision_kernel.obj) : error LNK2005: "void __cdecl dGeomCreateOffset(struct dxGeom *)" (?dGeomCreateOffset@@YAXPAUdxGeom@@@Z) already defined in ode.lib(collision_kernel.obj)
1>ode_doubled.lib(collision_kernel.obj) : error LNK2005: _dGeomSetOffsetPosition already defined in ode.lib(collision_kernel.obj)
1>ode_doubled.lib(collision_kernel.obj) : error LNK2005: _dGeomSetOffsetRotation already defined in ode.lib(collision_kernel.obj)
1>ode_doubled.lib(collision_kernel.obj) : error LNK2005: _dGeomSetOffsetQuaternion already defined in ode.lib(collision_kernel.obj)
1>ode_doubled.lib(collision_kernel.obj) : error LNK2005: _dGeomSetOffsetWorldPosition already defined in ode.lib(collision_kernel.obj)
1>ode_doubled.lib(collision_kernel.obj) : error LNK2005: _dGeomSetOffsetWorldRotation already defined in ode.lib(collision_kernel.obj)
1>ode_doubled.lib(collision_kernel.obj) : error LNK2005: _dGeomSetOffsetWorldQuaternion already defined in ode.lib(collision_kernel.obj)
1>ode_doubled.lib(collision_kernel.obj) : error LNK2005: _dGeomClearOffset already defined in ode.lib(collision_kernel.obj)
1>ode_doubled.lib(collision_kernel.obj) : error LNK2005: _dGeomIsOffset already defined in ode.lib(collision_kernel.obj)
1>ode_doubled.lib(collision_kernel.obj) : error LNK2005: _dGeomGetOffsetPosition already defined in ode.lib(collision_kernel.obj)
1>ode_doubled.lib(collision_kernel.obj) : error LNK2005: _dGeomCopyOffsetPosition already defined in ode.lib(collision_kernel.obj)
1>ode_doubled.lib(collision_kernel.obj) : error LNK2005: _dGeomGetOffsetRotation already defined in ode.lib(collision_kernel.obj)
1>ode_doubled.lib(collision_kernel.obj) : error LNK2005: _dGeomCopyOffsetRotation already defined in ode.lib(collision_kernel.obj)
1>ode_doubled.lib(collision_kernel.obj) : error LNK2005: _dGeomGetOffsetQuaternion already defined in ode.lib(collision_kernel.obj)
1> Creating library ..\..\lib\Debug/OgreOde_Core_d.lib and object ..\..\lib\Debug/OgreOde_Core_d.exp
1>LINK : warning LNK4098: defaultlib 'MSVCRT' conflicts with use of other libs; use /NODEFAULTLIB:library
1>OgreOdeWorld.obj : error LNK2001: unresolved external symbol "public: virtual __thiscall OgreOde::TriangleMeshData::~TriangleMeshData(void)" (??1TriangleMeshData@OgreOde@@UAE@XZ)
1>OgreOdeGeometry.obj : error LNK2001: unresolved external symbol "public: virtual __thiscall OgreOde::TriangleMeshData::~TriangleMeshData(void)" (??1TriangleMeshData@OgreOde@@UAE@XZ)
1>OgreOdeJoint.obj : error LNK2001: unresolved external symbol "public: virtual __thiscall OgreOde::TriangleMeshData::~TriangleMeshData(void)" (??1TriangleMeshData@OgreOde@@UAE@XZ)
1>OgreOdeSpace.obj : error LNK2001: unresolved external symbol "public: virtual __thiscall OgreOde::TriangleMeshData::~TriangleMeshData(void)" (??1TriangleMeshData@OgreOde@@UAE@XZ)
1>OgreOdeStepper.obj : error LNK2001: unresolved external symbol "public: virtual __thiscall OgreOde::TriangleMeshData::~TriangleMeshData(void)" (??1TriangleMeshData@OgreOde@@UAE@XZ)
1>OgreOdeBody.obj : error LNK2019: unresolved external symbol "public: virtual __thiscall OgreOde::TriangleMeshData::~TriangleMeshData(void)" (??1TriangleMeshData@OgreOde@@UAE@XZ) referenced in function "public: virtual void * __thiscall OgreOde::TriangleMeshData::`scalar deleting destructor'(unsigned int)" (??_GTriangleMeshData@OgreOde@@UAEPAXI@Z)
1>OgreOdeCollision.obj : error LNK2001: unresolved external symbol "public: virtual __thiscall OgreOde::TriangleMeshData::~TriangleMeshData(void)" (??1TriangleMeshData@OgreOde@@UAE@XZ)
1>OgreOdeDebugContact.obj : error LNK2001: unresolved external symbol "public: virtual __thiscall OgreOde::TriangleMeshData::~TriangleMeshData(void)" (??1TriangleMeshData@OgreOde@@UAE@XZ)
1>OgreOdeEntityInformer.obj : error LNK2001: unresolved external symbol "public: virtual __thiscall OgreOde::TriangleMeshData::~TriangleMeshData(void)" (??1TriangleMeshData@OgreOde@@UAE@XZ)
1>OgreOdeEntityInformer.obj : error LNK2019: unresolved external symbol "public: void __thiscall OgreOde::TriangleMeshDataManager::addTriangleMeshData(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class OgreOde::TriangleMeshDataPtr,class Ogre::Vector3)" (?addTriangleMeshData@TriangleMeshDataManager@OgreOde@@QAEXABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@VTriangleMeshDataPtr@2@VVector3@Ogre@@@Z) referenced in function "public: __thiscall OgreOde::EntityInformerReuse::EntityInformerReuse(class Ogre::Entity *,class Ogre::Vector3 const &,bool)" (??0EntityInformerReuse@OgreOde@@QAE@PAVEntity@Ogre@@ABVVector3@3@_N@Z)
1>OgreOdeEntityInformer.obj : error LNK2019: unresolved external symbol "public: __thiscall OgreOde::TriangleMeshData::TriangleMeshData(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class Ogre::Vector3,class Ogre::Vector3 const *,unsigned int,unsigned int const *,unsigned int)" (??0TriangleMeshData@OgreOde@@QAE@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@VVector3@Ogre@@PBV45@IPBII@Z) referenced in function "public: __thiscall OgreOde::EntityInformerReuse::EntityInformerReuse(class Ogre::Entity *,class Ogre::Vector3 const &,bool)" (??0EntityInformerReuse@OgreOde@@QAE@PAVEntity@Ogre@@ABVVector3@3@_N@Z)
1>OgreOdeEntityInformer.obj : error LNK2019: unresolved external symbol "public: class OgreOde::TriangleMeshDataPtr __thiscall OgreOde::TriangleMeshDataManager::getTriangleMeshData(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class Ogre::Vector3)" (?getTriangleMeshData@TriangleMeshDataManager@OgreOde@@QAE?AVTriangleMeshDataPtr@2@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@VVector3@Ogre@@@Z) referenced in function "public: __thiscall OgreOde::EntityInformerReuse::EntityInformerReuse(class Ogre::Entity *,class Ogre::Vector3 const &,bool)" (??0EntityInformerReuse@OgreOde@@QAE@PAVEntity@Ogre@@ABVVector3@3@_N@Z)
1>OgreOdeEntityInformer.obj : error LNK2019: unresolved external symbol "public: static class OgreOde::TriangleMeshDataManager & __cdecl OgreOde::TriangleMeshDataManager::getSingleton(void)" (?getSingleton@TriangleMeshDataManager@OgreOde@@SAAAV12@XZ) referenced in function "public: __thiscall OgreOde::EntityInformerReuse::EntityInformerReuse(class Ogre::Entity *,class Ogre::Vector3 const &,bool)" (??0EntityInformerReuse@OgreOde@@QAE@PAVEntity@Ogre@@ABVVector3@3@_N@Z)
1>..\..\lib\Debug/OgreOde_Core_d.dll : fatal error LNK1120: 5 unresolved externals
1>Build log was saved at "file://c:\ogreode\obj\Debug\BuildLog.htm"
1>OgreOde_Core - 123 error(s), 2 warning(s)
========== Build: 0 succeeded, 1 failed, 1 up-to-date, 0 skipped ==========


Thank you in advance:D


Looks like you have a few problems here. Not sure what version of svn you are using so some of the following may not apply.

Firstly, if you're building and using the ode Debug/ReleaseDoubleDLL you need to build with Multi-threaded DLL (/MD) or for debug Multi-threaded Debug DLL (/MDd) .

Secondly with OgreOde you appear to be linking against more than one version of ode, probably the version that comes with the Ogre SDK( if it sill does ). You probably just need to remove ode.lib from your Linker libraries and make sure that your path to ode is first in you C++ include paths.

Lastly the TriangleMesh* headers/source files may be missing from the OgreOde_Core project, if that is the case you probably just need to add them.

markjco

07-02-2010 14:02:11

Thanks for your post! It solved the problems and I have compiled and built OgreOde_Core:)

I tested the demo applications namely, Demo_Landscape, but it had this error:
1>Linking...
1>LINK : warning LNK4224: /OPT:NOWIN98 is no longer supported; ignored
1>Landscape.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: static void __cdecl OIS::InputManager::destroyInputSystem(class OIS::InputManager *)" (__imp_?destroyInputSystem@InputManager@OIS@@SAXPAV12@@Z)
1>Landscape.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: static class OIS::InputManager * __cdecl OIS::InputManager::createInputSystem(class std::multimap<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,struct std::less<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > >,class std::allocator<struct std::pair<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const ,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > > > > &)" (__imp_?createInputSystem@InputManager@OIS@@SAPAV12@AAV?$multimap@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V12@U?$less@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@V?$allocator@U?$pair@$$CBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V12@@std@@@2@@std@@@Z)
1>Landscape.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: struct OIS::MouseState const & __thiscall OIS::Mouse::getMouseState(void)const " (__imp_?getMouseState@Mouse@OIS@@QBEABUMouseState@2@XZ)
1>Landscape.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: bool __thiscall OIS::MouseState::buttonDown(enum OIS::MouseButtonID)const " (__imp_?buttonDown@MouseState@OIS@@QBE_NW4MouseButtonID@2@@Z)
1>..\..\..\..\..\Samples\Common\bin\Release/OgreOdeDemo_Landscape.exe : fatal error LNK1120: 4 unresolved externals
1>Build log was saved at "file://c:\ogreode\demos\Landscape\obj\Release\BuildLog.htm"
1>Demo_Landscape - 5 error(s), 1 warning(s)


I included the OgreSDK\samples\include to include the ExampleApplication.h needed.

markjco

07-02-2010 14:30:10

I got it, I linked with OIS.lib and it built successfully, but as a ran it, an error message box appeared and said that it cannot find OgreMain.dll

I'm so close! :))

dermont

07-02-2010 14:53:47

I got it, I linked with OIS.lib and it built successfully, but as a ran it, an error message box appeared and said that it cannot find OgreMain.dll

I'm so close! :))


Sorry I'm not too sure how the Ogre SDK works on Windows, I'm a Linux user. You could copy across the OgreOde_*.dl's / ode*.dlls / Sample exes to your OgreSDK/bin/Release/Debug directories and update your resources.cfg to point to the ogreode media:

[OgreOde]
FileSystem=ogrev1.6.4\ogreode\demos\Media


Or conversely copy the OgreMain*.dlls/ dependency dlls to your OgreOde bin directory and update you plugins.cfg to point to the OgreSDK plugins.

You should probably wait for a Windows developer to comment. Also Dependency Walker is very useful for tracking DLL problems.

http://www.dependencywalker.com/

Edit:
Also there is a problem with the Landscape demo, you will probably be better off trying the GranTurismOgre/SimpleScenes demos first.

Bludo

18-02-2010 08:38:17

I got it, I linked with OIS.lib and it built successfully, but as a ran it, an error message box appeared and said that it cannot find OgreMain.dll

I'm so close! :))


If you check your plugins.cfg file, it will tell you what the libraries are that it expects to find. It most likely has them listed without paths, assuming that the current runtime directory already has them in it. You can solve this by simply copying the core Ogre .dll files (pretty much .dll file in the Ogre bin that doesn't begin with "Sample") and placing them in the same place as the OgreOde .dll files and demo executables. As long as plugins.cfg and resources.cfg are there, and resources.cfg contains the correct paths to the listed media, it should run.

As for the Landscape demo, the problem is in the raw data file that it attempts to use as the terrain map. This can be resolved by going to this spot in Landscape.cpp
//static String config_file ("terrainOgreOde.cfg");// OgreSDK terrain, very small tris
//static String config_file ("landscape.cfg");landy average
//static String config_file("landscape1.cfg");// near flat
static String config_file("landscape2.cfg");// totally flat + cliffs + small tris
//static String config_file("landscape3.cfg");// same as landy average but huge
//static String config_file("landscape4.cfg");// same as landy average
//static String config_file("landscape5.cfg");// landy average, but very picky
//static String config_file("landscape6.cfg");// near flat


and commenting out "static String config_file("landscape2.cfg");" and uncommenting out one of the other configurations that will use a different terrain map. Of course, It's not quite the same, but the demo can then be run after building. Just make sure that the terrain files listed in the .cfg file that is uncommented are available in the demos/Media folder. Anything that's not there will most likely be found in the OGRE_HOME/Samples/Media folder.

Bludo