Trouble linking

immesys
Posts: 7
Joined: Fri May 16, 2008 8:01 am

Trouble linking

Post by immesys »

I'm compiling the latest bullet SVN on linux using jam. I basically edited 'Jamconfig' in the root and added -DBT_USE_DOUBLE_PRECISION to the C flags and CXX flags. (I couldn't think how else to do it)

I then executed 'jam libs' and got my libraries. The problem is when I try and link against them, I get the following errors, and I can't figure out why(I'm using GImpact as well):

Code: Select all

g++     -o phystest [... my long list of files ...] -Llib -lbulletcollision -lbulletdynamics -lbulletsoftbody -lbulletmath -lbulletmultithreaded -lconvexdecomposition -lGIMPACT 

lib/libbulletdynamics.a(btDiscreteDynamicsWorld.o): In function `btDiscreteDynamicsWorld::removeRigidBody(btRigidBody*)':
btDiscreteDynamicsWorld.cpp:(.text+0x1af): undefined reference to `btCollisionWorld::removeCollisionObject(btCollisionObject*)'
lib/libbulletdynamics.a(btDiscreteDynamicsWorld.o): In function `btDiscreteDynamicsWorld::addRigidBody(btRigidBody*, short, short)':
btDiscreteDynamicsWorld.cpp:(.text+0x4f9): undefined reference to `btCollisionWorld::addCollisionObject(btCollisionObject*, short, short)'
lib/libbulletdynamics.a(btDiscreteDynamicsWorld.o): In function `btDiscreteDynamicsWorld::addRigidBody(btRigidBody*)':
btDiscreteDynamicsWorld.cpp:(.text+0x719): undefined reference to `btCollisionWorld::addCollisionObject(btCollisionObject*, short, short)'
lib/libbulletdynamics.a(btDiscreteDynamicsWorld.o): In function `btDiscreteDynamicsWorld::btDiscreteDynamicsWorld(btDispatcher*, btBroadphaseInterface*, btConstraintSolver*, btCollisionConfiguration*)':
btDiscreteDynamicsWorld.cpp:(.text+0x791): undefined reference to `btCollisionWorld::btCollisionWorld(btDispatcher*, btBroadphaseInterface*, btCollisionConfiguration*)'
btDiscreteDynamicsWorld.cpp:(.text+0x93d): undefined reference to `btSimulationIslandManager::btSimulationIslandManager()'
lib/libbulletdynamics.a(btDiscreteDynamicsWorld.o): In function `btDiscreteDynamicsWorld::~btDiscreteDynamicsWorld()':
btDiscreteDynamicsWorld.cpp:(.text+0x1284): undefined reference to `btCollisionWorld::~btCollisionWorld()'
lib/libbulletdynamics.a(btDiscreteDynamicsWorld.o): In function `btDiscreteDynamicsWorld::btDiscreteDynamicsWorld(btDispatcher*, btBroadphaseInterface*, btConstraintSolver*, btCollisionConfiguration*)':
btDiscreteDynamicsWorld.cpp:(.text+0x1331): undefined reference to `btCollisionWorld::btCollisionWorld(btDispatcher*, btBroadphaseInterface*, btCollisionConfiguration*)'
btDiscreteDynamicsWorld.cpp:(.text+0x14dd): undefined reference to `btSimulationIslandManager::btSimulationIslandManager()'
lib/libbulletdynamics.a(btDiscreteDynamicsWorld.o): In function `btDiscreteDynamicsWorld::~btDiscreteDynamicsWorld()':
btDiscreteDynamicsWorld.cpp:(.text+0x1604): undefined reference to `btCollisionWorld::~btCollisionWorld()'
lib/libbulletdynamics.a(btDiscreteDynamicsWorld.o): In function `btDiscreteDynamicsWorld::~btDiscreteDynamicsWorld()':
btDiscreteDynamicsWorld.cpp:(.text+0x1754): undefined reference to `btCollisionWorld::~btCollisionWorld()'
lib/libbulletdynamics.a(btDiscreteDynamicsWorld.o): In function `btDiscreteDynamicsWorld::solveConstraints(btContactSolverInfo&)':
btDiscreteDynamicsWorld.cpp:(.text+0x22e6): undefined reference to `btSimulationIslandManager::buildAndProcessIslands(btDispatcher*, btAlignedObjectArray<btCollisionObject*>&, btSimulationIslandManager::IslandCallback*)'
lib/libbulletdynamics.a(btDiscreteDynamicsWorld.o): In function `btDynamicsWorld::~btDynamicsWorld()':
btDiscreteDynamicsWorld.cpp:(.text._ZN15btDynamicsWorldD0Ev[btDynamicsWorld::~btDynamicsWorld()]+0x29): undefined reference to `btCollisionWorld::~btCollisionWorld()'
lib/libbulletdynamics.a(btDiscreteDynamicsWorld.o): In function `btDynamicsWorld::~btDynamicsWorld()':
btDiscreteDynamicsWorld.cpp:(.text._ZN15btDynamicsWorldD1Ev[btDynamicsWorld::~btDynamicsWorld()]+0x22): undefined reference to `btCollisionWorld::~btCollisionWorld()'
lib/libbulletdynamics.a(btDiscreteDynamicsWorld.o):(.data.rel.ro._ZTV23btDiscreteDynamicsWorld[vtable for btDiscreteDynamicsWorld]+0x10): undefined reference to `btCollisionWorld::updateAabbs()'
lib/libbulletdynamics.a(btDiscreteDynamicsWorld.o):(.data.rel.ro._ZTV23btDiscreteDynamicsWorld[vtable for btDiscreteDynamicsWorld]+0x1c): undefined reference to `btCollisionWorld::performDiscreteCollisionDetection()'
lib/libbulletdynamics.a(btDiscreteDynamicsWorld.o):(.data.rel.ro._ZTI15btDynamicsWorld[typeinfo for btDynamicsWorld]+0x8): undefined reference to `typeinfo for btCollisionWorld'
lib/libbulletdynamics.a(btDiscreteDynamicsWorld.o):(.data.rel.ro._ZTV15btDynamicsWorld[vtable for btDynamicsWorld]+0x10): undefined reference to `btCollisionWorld::updateAabbs()'
lib/libbulletdynamics.a(btDiscreteDynamicsWorld.o):(.data.rel.ro._ZTV15btDynamicsWorld[vtable for btDynamicsWorld]+0x1c): undefined reference to `btCollisionWorld::performDiscreteCollisionDetection()'
lib/libbulletdynamics.a(btRaycastVehicle.o): In function `btDefaultVehicleRaycaster::castRay(btVector3 const&, btVector3 const&, btVehicleRaycaster::btVehicleRaycasterResult&)':
btRaycastVehicle.cpp:(.text+0x103f): undefined reference to `btCollisionWorld::rayTest(btVector3 const&, btVector3 const&, btCollisionWorld::RayResultCallback&) const'
lib/libGIMPACT.a(btGImpactCollisionAlgorithm.o): In function `btGImpactCollisionAlgorithm::gimpact_vs_shape(btCollisionObject*, btCollisionObject*, btGImpactShapeInterface*, btCollisionShape*, bool)':
btGImpactCollisionAlgorithm.cpp:(.text+0x2bb8): undefined reference to `btBU_Simplex1to4::btBU_Simplex1to4()'
lib/libGIMPACT.a(btGImpactCollisionAlgorithm.o): In function `btGImpactCollisionAlgorithm::gimpact_vs_gimpact(btCollisionObject*, btCollisionObject*, btGImpactShapeInterface*, btGImpactShapeInterface*)':
btGImpactCollisionAlgorithm.cpp:(.text+0x3c32): undefined reference to `btBU_Simplex1to4::btBU_Simplex1to4()'
btGImpactCollisionAlgorithm.cpp:(.text+0x3d2e): undefined reference to `btBU_Simplex1to4::btBU_Simplex1to4()'
lib/libGIMPACT.a(btGImpactCollisionAlgorithm.o):(.data.rel.ro._ZTV20btTetrahedronShapeEx[vtable for btTetrahedronShapeEx]+0x50): undefined reference to `btBU_Simplex1to4::getNumVertices() const'
lib/libGIMPACT.a(btGImpactCollisionAlgorithm.o):(.data.rel.ro._ZTV20btTetrahedronShapeEx[vtable for btTetrahedronShapeEx]+0x54): undefined reference to `btBU_Simplex1to4::getNumEdges() const'
lib/libGIMPACT.a(btGImpactCollisionAlgorithm.o):(.data.rel.ro._ZTV20btTetrahedronShapeEx[vtable for btTetrahedronShapeEx]+0x58): undefined reference to `btBU_Simplex1to4::getEdge(int, btVector3&, btVector3&) const'
lib/libGIMPACT.a(btGImpactCollisionAlgorithm.o):(.data.rel.ro._ZTV20btTetrahedronShapeEx[vtable for btTetrahedronShapeEx]+0x5c): undefined reference to `btBU_Simplex1to4::getVertex(int, btVector3&) const'
lib/libGIMPACT.a(btGImpactCollisionAlgorithm.o):(.data.rel.ro._ZTV20btTetrahedronShapeEx[vtable for btTetrahedronShapeEx]+0x60): undefined reference to `btBU_Simplex1to4::getNumPlanes() const'
lib/libGIMPACT.a(btGImpactCollisionAlgorithm.o):(.data.rel.ro._ZTV20btTetrahedronShapeEx[vtable for btTetrahedronShapeEx]+0x64): undefined reference to `btBU_Simplex1to4::getPlane(btVector3&, btVector3&, int) const'
lib/libGIMPACT.a(btGImpactCollisionAlgorithm.o):(.data.rel.ro._ZTV20btTetrahedronShapeEx[vtable for btTetrahedronShapeEx]+0x68): undefined reference to `btBU_Simplex1to4::isInside(btVector3 const&, double) const'
lib/libGIMPACT.a(btGImpactCollisionAlgorithm.o):(.data.rel.ro._ZTV20btTetrahedronShapeEx[vtable for btTetrahedronShapeEx]+0x6c): undefined reference to `btBU_Simplex1to4::getIndex(int) const'
lib/libGIMPACT.a(btGImpactCollisionAlgorithm.o):(.data.rel.ro._ZTI20btTetrahedronShapeEx[typeinfo for btTetrahedronShapeEx]+0x8): undefined reference to `typeinfo for btBU_Simplex1to4'
collect2: ld returned 1 exit status
any help would be appreciated.
immesys
Posts: 7
Joined: Fri May 16, 2008 8:01 am

Re: Trouble linking

Post by immesys »

Turns out that the order of the linking needs to be the following:
-lbulletdynamics -lGIMPACT -lbulletcollision -lbulletmath

and then all works.