如何使用Bullet Physics SDK清除VS2015中的错误LNK2001?

时间:2019-02-23 10:36:21

标签: c++ bulletphysics

PS。抱歉..我不太会说英语。

我想问一些关于Bullet Physics SDK的问题。 //我使用Vistual Studio 2015 / Bullet 2.88

当前我的解决方案文件夹中有lib文件,头文件

  

用于调试模式的lib文件:   BulletCollision_vs2010_debug.lib / BulletDynamics_vs2010_debug.lib / LinearMath_vs2010_debug.lib

     

对于发布模式的lib文件:   BulletCollision_vs2010.lib / BulletDynamics_vs2010.lib / LinearMath_vs2010.lib

我做了所有这样的设置

set inc Dir : Properties->C/C++->General->Additional Include Directories
set lib Dir : Properties->Linker->General->Additional Library Directories
set additional Dependencies : Properties->Linker->Input->Additional>Dependencies
set appropriate runtime library : Properties->C/C++->Code Generate->runtime ilbrary

但是我的项目中仍然有错误

외부 기호를 확인할 수 없습니다. = unresolved external symbol

  

main.obj:错误LNK2001:“公共:虚拟浮点__thiscall   btCollisionShape :: getContactBreakingThreshold(float)const“   (?getContactBreakingThreshold @ btCollisionShape @@ UBEMM @ Z)호를호를확인할수   없습니다。

     

main.obj:错误LNK2001:“公共:虚拟浮点__thiscall   btCollisionShape :: getAngularMotionDisc(void)const“   (?getAngularMotionDisc @ btCollisionShape @@ UBEMXZ)호를기호를다없습니。

     

main.obj:错误LNK2001:“ public:虚拟void __thiscall   btCollisionShape :: getBoundingSphere(btVector3&,float&)const“   (?getBoundingSphere @ btCollisionShape @@ UBEXAAVbtVector3 @@ AAM @ Z)호를기호를   없습니다。

     

main.obj:错误LNK2001:“ public:虚拟void __thiscall   btConvexShape :: project(btTransform类const&,btVector3类const   &,float&,float&,class btVector3&,btVector3&)const“   (?project @ btConvexShape @@ UBEXABVbtTransform @@ ABVbtVector3 @@ AAM2AAV3 @ 3 @ Z)   외부기호를없습니다。

     

main.obj:错误LNK2001:“ public:虚拟void __thiscall   btSphereShape :: calculateLocalInertia(float,class btVector3&)const“   (?calculateLocalInertia @ btSphereShape @@ UBEXMAAVbtVector3 @@@@ Z)호를기호를   없습니다。

如何解决这些错误? 谢谢您的收听!

1 个答案:

答案 0 :(得分:0)

错误btCollisionShape::getBoundingSphere(class btVector3 &,float &)在我看来就像您已将 btScalar 定义为单精度,但是默认情况下,项目符号库通过将 btScalar 定义为双精度,将< strong> BT_USE_DOUBLE_PRECISION =1。您需要在应用程序中执行相同的操作,以确保类型对齐。