1 error I can't solve in a basic ogreode app please help

shandoo

09-04-2007 00:45:38

hi

I'm using ogre 1.4 rc2 and I've downloaded the ode source from ode.org, 0.8 version and I've compiled the source with visual c++2005 express edition successfully.

Now I have the dll ode.dll but I don't know where I have to put in. I've tryed to put this dll into $(OGRE_HOME)/lib adding the dll as a additional dependence. Then when I write code in my program for example: OgreOde::SimpreSpace* space = new OgreOde::SimpleSpace(_world->getDefaultSpace());
when I compile, I get this error:

error C2664: 'OgreOde::SimpleSpace::SimpleSpace(OgreOde::World *,const OgreOde::Space *)' : cannot convert parameter 1 from 'OgreOde::Space *' to 'OgreOde::World *

then I try this:
OgreOde::SimpleSpace* playerSpace = new OgreOde::SimpleSpace();
playerSpace->setInternalCollisions(false);


and I get this error:
error C2512: 'OgreOde::SimpleSpace' : no appropriate default constructor available

I don't know what I have to do, I'm follwing this tutorial step by step:

http://www.ogre3d.org/wiki/index.php/Og ... _Character

and the code of SimpleScenes Ragdoll, when I try to compile the source of SimpleScenes I get a lot of errors like
these:

error LNK2001: unresolved external symbol "__declspec(dllimport) public: void __thiscall OgreOde::Space::setInternalCollisions(bool)" (__imp_?setInternalCollisions@Space@OgreOde@@QAEX_N@Z)
error LNK2001: unresolved external symbol "__declspec(dllimport) public: void __thiscall OgreOde::Space::setInternalCollisions(bool)" (__imp_?setInternalCollisions@Space@OgreOde@@QAEX_N@Z)
error LNK2001: unresolved external symbol "__declspec(dllimport) public: __thiscall OgreOde::SimpleSpace::SimpleSpace(class OgreOde::World *,class OgreOde::Space const *)" (__imp_??0SimpleSpace@OgreOde@@QAE@PAVWorld@1@PBVSpace@1@@Z)
error LNK2001: unresolved external symbol "public: virtual void __thiscall OgreOde::Space::collide(class OgreOde::Geometry *,void *)" (?collide@Space@OgreOde@@UAEXPAVGeometry@2@PAX@Z)
error LNK2001: unresolved external symbol "public: virtual void __thiscall OgreOde::Space::collide(class OgreOde::Space *,void *)" (?collide@Space@OgreOde@@UAEXPAV12@PAX@Z)
error LNK2001: unresolved external symbol "public: virtual void __thiscall OgreOde::Space::collide(void *)" (?collide@Space@OgreOde@@UAEXPAX@Z)
error LNK2001: unresolved external symbol "public: virtual class Ogre::AxisAlignedBox const & __thiscall OgreOde::Space::getAxisAlignedBox(void)" (?getAxisAlignedBox@Space@OgreOde@@UAEABVAxisAlignedBox@Ogre@@XZ)
error LNK2001: unresolved external symbol "public: virtual unsigned long __thiscall OgreOde::Space::getID(void)" (?getID@Space@OgreOde@@UAEKXZ)
error LNK2001: unresolved external symbol "__declspec(dllimport) public: virtual __thiscall OgreOde::SimpleSpace::~SimpleSpace(void)" (__imp_??1SimpleSpace@OgreOde@@UAE@XZ)


I don't know where is the problem, the dll, the lib...

And finally, I don't know why the compiler gives me errors when I write theses sentences:
using namespace OgreOde_Prefab;
using namespace OgreOde_Loader;


I get these errors:

error C2871: 'OgreOde_Prefab' : a namespace with this name does not exist
error C2871: 'OgreOde_Loader' : a namespace with this name does not exist


Please help, I need to solve these problems. LOTS OF THANKS IN ADVANCE.

ceacy

10-04-2007 08:32:26

For the first error : try replacing
OgreOde::SimpreSpace* space = new OgreOde::SimpleSpace(_world->getDefaultSpace());

by :

OgreOde::SimpreSpace* space = new OgreOde::SimpleSpace(_world, _world->getDefaultSpace());

shandoo

11-04-2007 02:53:41

yes, this one works, THANKS