Compiling OgreOde gives linker error

watchtalker

03-01-2010 14:09:00

I'm using debug mode.

I have been trying to compile OgreOde from svn using ode 11.1. ODE compiles fine, and so does OgreOde_Core, but when I try to compile OgreOde_Prefab I get these linking errors:
1>Linking...
1> Creating library ..\..\lib\Debug/OgreOde_Prefab_d.lib and object ..\..\lib\Debug/OgreOde_Prefab_d.exp
1>OgreOdeRagdoll.obj : error LNK2001: unresolved external symbol "public: virtual void __thiscall OgreOde::Space::collide(class OgreOde::CollisionCallback *,class OgreOde::Geometry *,bool)" (?collide@Space@OgreOde@@UAEXPAVCollisionCallback@2@PAVGeometry@2@_N@Z)
1>OgreOdeVehicle.obj : error LNK2001: unresolved external symbol "public: virtual void __thiscall OgreOde::Space::collide(class OgreOde::CollisionCallback *,class OgreOde::Geometry *,bool)" (?collide@Space@OgreOde@@UAEXPAVCollisionCallback@2@PAVGeometry@2@_N@Z)
1>OgreOdeRagdoll.obj : error LNK2001: unresolved external symbol "public: virtual void __thiscall OgreOde::Space::collide(class OgreOde::CollisionCallback *,class OgreOde::Space *)" (?collide@Space@OgreOde@@UAEXPAVCollisionCallback@2@PAV12@@Z)
1>OgreOdeVehicle.obj : error LNK2001: unresolved external symbol "public: virtual void __thiscall OgreOde::Space::collide(class OgreOde::CollisionCallback *,class OgreOde::Space *)" (?collide@Space@OgreOde@@UAEXPAVCollisionCallback@2@PAV12@@Z)
1>OgreOdeRagdoll.obj : error LNK2001: unresolved external symbol "public: virtual void __thiscall OgreOde::Space::collide(class OgreOde::CollisionCallback *,bool)" (?collide@Space@OgreOde@@UAEXPAVCollisionCallback@2@_N@Z)
1>OgreOdeVehicle.obj : error LNK2001: unresolved external symbol "public: virtual void __thiscall OgreOde::Space::collide(class OgreOde::CollisionCallback *,bool)" (?collide@Space@OgreOde@@UAEXPAVCollisionCallback@2@_N@Z)
1>OgreOdeRagdoll.obj : error LNK2001: unresolved external symbol "public: virtual unsigned int __thiscall OgreOde::Space::getID(void)" (?getID@Space@OgreOde@@UAEIXZ)
1>OgreOdeVehicle.obj : error LNK2001: unresolved external symbol "public: virtual unsigned int __thiscall OgreOde::Space::getID(void)" (?getID@Space@OgreOde@@UAEIXZ)
1>OgreOdeRagdoll.obj : error LNK2001: unresolved external symbol "public: virtual unsigned int __thiscall OgreOde::JointGroup::getID(void)" (?getID@JointGroup@OgreOde@@UAEIXZ)
1>OgreOdeRagdoll.obj : error LNK2001: unresolved external symbol "public: virtual void __thiscall OgreOde::Body::visitRenderables(class Ogre::Renderable::Visitor *,bool)" (?visitRenderables@Body@OgreOde@@UAEXPAVVisitor@Renderable@Ogre@@_N@Z)
1>OgreOdeVehicle.obj : error LNK2001: unresolved external symbol "public: virtual void __thiscall OgreOde::Body::visitRenderables(class Ogre::Renderable::Visitor *,bool)" (?visitRenderables@Body@OgreOde@@UAEXPAVVisitor@Renderable@Ogre@@_N@Z)
1>OgreOdeRagdoll.obj : error LNK2001: unresolved external symbol "public: virtual unsigned int __thiscall OgreOde::Body::getID(void)" (?getID@Body@OgreOde@@UAEIXZ)
1>OgreOdeVehicle.obj : error LNK2001: unresolved external symbol "public: virtual unsigned int __thiscall OgreOde::Body::getID(void)" (?getID@Body@OgreOde@@UAEIXZ)
1>OgreOdeRagdoll.obj : error LNK2001: unresolved external symbol "public: virtual unsigned int __thiscall OgreOde::Geometry::getID(void)const " (?getID@Geometry@OgreOde@@UBEIXZ)
1>OgreOdeVehicle.obj : error LNK2019: unresolved external symbol "public: virtual unsigned int __thiscall OgreOde::Geometry::getID(void)const " (?getID@Geometry@OgreOde@@UBEIXZ) referenced in function "public: __thiscall std::_Iterator_base::~_Iterator_base(void)" (??1_Iterator_base@std@@QAE@XZ)
1>OgreOdeRagdoll.obj : error LNK2001: unresolved external symbol "public: virtual class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const & __thiscall OgreOde::Geometry::getName(void)const " (?getName@Geometry@OgreOde@@UBEABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@XZ)
1>OgreOdeVehicle.obj : error LNK2001: unresolved external symbol "public: virtual class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const & __thiscall OgreOde::Geometry::getName(void)const " (?getName@Geometry@OgreOde@@UBEABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@XZ)
1>OgreOdeRagdoll.obj : error LNK2001: unresolved external symbol "public: virtual class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const & __thiscall OgreOde::Geometry::getMovableType(void)const " (?getMovableType@Geometry@OgreOde@@UBEABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@XZ)
1>OgreOdeVehicle.obj : error LNK2001: unresolved external symbol "public: virtual class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const & __thiscall OgreOde::Geometry::getMovableType(void)const " (?getMovableType@Geometry@OgreOde@@UBEABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@XZ)
1>OgreOdeRagdoll.obj : error LNK2001: unresolved external symbol "public: virtual void __thiscall OgreOde::Geometry::_notifyAttached(class Ogre::Node *,bool)" (?_notifyAttached@Geometry@OgreOde@@UAEXPAVNode@Ogre@@_N@Z)
1>OgreOdeVehicle.obj : error LNK2001: unresolved external symbol "public: virtual void __thiscall OgreOde::Geometry::_notifyAttached(class Ogre::Node *,bool)" (?_notifyAttached@Geometry@OgreOde@@UAEXPAVNode@Ogre@@_N@Z)
1>OgreOdeRagdoll.obj : error LNK2001: unresolved external symbol "public: virtual void __thiscall OgreOde::Geometry::_notifyMoved(void)" (?_notifyMoved@Geometry@OgreOde@@UAEXXZ)
1>OgreOdeVehicle.obj : error LNK2001: unresolved external symbol "public: virtual void __thiscall OgreOde::Geometry::_notifyMoved(void)" (?_notifyMoved@Geometry@OgreOde@@UAEXXZ)
1>OgreOdeRagdoll.obj : error LNK2001: unresolved external symbol "public: virtual class Ogre::AxisAlignedBox const & __thiscall OgreOde::Geometry::getBoundingBox(void)const " (?getBoundingBox@Geometry@OgreOde@@UBEABVAxisAlignedBox@Ogre@@XZ)
1>OgreOdeVehicle.obj : error LNK2001: unresolved external symbol "public: virtual class Ogre::AxisAlignedBox const & __thiscall OgreOde::Geometry::getBoundingBox(void)const " (?getBoundingBox@Geometry@OgreOde@@UBEABVAxisAlignedBox@Ogre@@XZ)
1>OgreOdeRagdoll.obj : error LNK2001: unresolved external symbol "public: virtual float __thiscall OgreOde::Geometry::getBoundingRadius(void)const " (?getBoundingRadius@Geometry@OgreOde@@UBEMXZ)
1>OgreOdeVehicle.obj : error LNK2001: unresolved external symbol "public: virtual float __thiscall OgreOde::Geometry::getBoundingRadius(void)const " (?getBoundingRadius@Geometry@OgreOde@@UBEMXZ)
1>OgreOdeRagdoll.obj : error LNK2001: unresolved external symbol "public: virtual void __thiscall OgreOde::Geometry::_updateRenderQueue(class Ogre::RenderQueue *)" (?_updateRenderQueue@Geometry@OgreOde@@UAEXPAVRenderQueue@Ogre@@@Z)
1>OgreOdeVehicle.obj : error LNK2001: unresolved external symbol "public: virtual void __thiscall OgreOde::Geometry::_updateRenderQueue(class Ogre::RenderQueue *)" (?_updateRenderQueue@Geometry@OgreOde@@UAEXPAVRenderQueue@Ogre@@@Z)
1>OgreOdeRagdoll.obj : error LNK2001: unresolved external symbol "public: virtual void __thiscall OgreOde::Geometry::setUserObject(class Ogre::UserDefinedObject *)" (?setUserObject@Geometry@OgreOde@@UAEXPAVUserDefinedObject@Ogre@@@Z)
1>OgreOdeVehicle.obj : error LNK2019: unresolved external symbol "public: virtual void __thiscall OgreOde::Geometry::setUserObject(class Ogre::UserDefinedObject *)" (?setUserObject@Geometry@OgreOde@@UAEXPAVUserDefinedObject@Ogre@@@Z) referenced in function "public: void __thiscall OgreOde_Prefab::Vehicle::setSuspension(float,float,float)" (?setSuspension@Vehicle@OgreOde_Prefab@@QAEXMMM@Z)
1>OgreOdeRagdoll.obj : error LNK2001: unresolved external symbol "public: virtual class Ogre::UserDefinedObject * __thiscall OgreOde::Geometry::getUserObject(void)" (?getUserObject@Geometry@OgreOde@@UAEPAVUserDefinedObject@Ogre@@XZ)
1>OgreOdeVehicle.obj : error LNK2019: unresolved external symbol "public: virtual class Ogre::UserDefinedObject * __thiscall OgreOde::Geometry::getUserObject(void)" (?getUserObject@Geometry@OgreOde@@UAEPAVUserDefinedObject@Ogre@@XZ) referenced in function "public: void __thiscall OgreOde_Prefab::Vehicle::setSuspension(float,float,float)" (?setSuspension@Vehicle@OgreOde_Prefab@@QAEXMMM@Z)
1>OgreOdeRagdoll.obj : error LNK2001: unresolved external symbol "public: virtual void __thiscall OgreOde::Geometry::visitRenderables(class Ogre::Renderable::Visitor *,bool)" (?visitRenderables@Geometry@OgreOde@@UAEXPAVVisitor@Renderable@Ogre@@_N@Z)
1>OgreOdeVehicle.obj : error LNK2019: unresolved external symbol "public: virtual void __thiscall OgreOde::Geometry::visitRenderables(class Ogre::Renderable::Visitor *,bool)" (?visitRenderables@Geometry@OgreOde@@UAEXPAVVisitor@Renderable@Ogre@@_N@Z) referenced in function "public: void __thiscall OgreOde_Prefab::Vehicle::setSuspension(float,float,float)" (?setSuspension@Vehicle@OgreOde_Prefab@@QAEXMMM@Z)
1>OgreOdeRagdoll.obj : error LNK2001: unresolved external symbol "public: virtual void __thiscall OgreOde::BallJoint::setParameter(enum OgreOde::Joint::Parameter,float,int)" (?setParameter@BallJoint@OgreOde@@UAEXW4Parameter@Joint@2@MH@Z)
1>OgreOdeRagdoll.obj : error LNK2001: unresolved external symbol "public: virtual float __thiscall OgreOde::BallJoint::getParameter(enum OgreOde::Joint::Parameter,int)" (?getParameter@BallJoint@OgreOde@@UAEMW4Parameter@Joint@2@H@Z)
1>OgreOdeRagdoll.obj : error LNK2001: unresolved external symbol "public: virtual unsigned int __thiscall OgreOde::Joint::getID(void)" (?getID@Joint@OgreOde@@UAEIXZ)
1>OgreOdeVehicle.obj : error LNK2019: unresolved external symbol "public: virtual unsigned int __thiscall OgreOde::Joint::getID(void)" (?getID@Joint@OgreOde@@UAEIXZ) referenced in function __ehhandler$?setSteering@Vehicle@OgreOde_Prefab@@QAEXM@Z
1>..\..\lib\Debug/OgreOde_Prefab_d.dll : fatal error LNK1120: 21 unresolved externals


My compiler/environment is Visual Studio 2008 Express. Any help is appreciated.

faceless

03-01-2010 21:07:07

Maybe try comparing the header files and source files directories of projects in VS with the related include and src directories on your drive. If something is missing, add it to project. Do it for both core and prefab projects. This helped when i had similar errors while compiling core.

shanefarris

04-01-2010 16:23:19

For me, I just combined the loader, and prefab with the wrapper. I never had a linking issue, but just telling you what I am doing with the code.