无法解决未定义的引用

时间:2013-06-15 02:25:44

标签: c++ linker bulletphysics

在Eclipse中编译时出现以下错误:

make: *** [ogre-bullet-playground] Error 1
undefined reference to `btCapsuleShape::btCapsuleShape(float, float)'
undefined reference to `btRigidBody::btRigidBody(float, btMotionState*, btCollisionShape*, btVector3 const&)'
undefined reference to `btRigidBody::btRigidBody(float, btMotionState*, btCollisionShape*, btVector3 const&)'
undefined reference to `btConvexHullShape::btConvexHullShape(float const*, int, int)'
undefined reference to `btKinematicCharacterController::btKinematicCharacterController(btPairCachingGhostObject*, btConvexShape*, float, int)'

这些是我正在使用的库:

OgreMain
OIS
boost_system
OgreTerrain
BulletDynamics
BulletCollision
LinearMath

有人知道如何解决这个问题吗?我认为库是可以的,我不知道为什么这不是编译。

1 个答案:

答案 0 :(得分:0)

  

未定义引用`btCapsuleShape :: btCapsuleShape(float,float)'

这个构造函数应该在BulletCollision库中定义。

  

这些是我正在使用的库:...... BulletCollision

最可能的解释是你做了这样的事情:

g++ -lBulletCollision ... main.cc

不要那样做。命令行matters上的源和目标文件和库的顺序以及您的订单可能是错误的。