嘿所以我刚刚下载了子弹2.78,并采取了以下步骤:
解压缩并找到此tutorial
完全遵循Cmake的步骤,除了我发现教程中的图片有一些像INSTALL LIBS一样的东西,我没有这样做,所以我最终检查了一切。
进入新生成的BULLET_PHYSICS.vcxproj并在调试和发布下构建
看到我在msvn / BulletBuild / lib的lib文件夹中有一堆新的lib但没有对它们做任何处理
完全按照本教程中的其余步骤设置实际项目
试图构建最后一行代码:FAIL
想知道我需要dll,因为只有.libs和pdbs出现在lib文件夹中,教程没有提到em
我在重建库方面的唯一经验是通过SFML构建下载中包含的msvn文件并使用生成的动态lib和dll文件。然而,本教程中的说明非常不同。 (如果有人能向我解释这是如何运作的话会很棒)
我完全按照指示,多次,但我不确定我错过了什么。如果我在main中注释掉代码行但是保留include,那么构建就有效,但是当我保留它时,我得到了这个:
1>BulletTestApp.obj : error LNK2001: unresolved external symbol "void * __cdecl btAlignedAllocInternal(unsigned int,int)" (?btAlignedAllocInternal@@YAPAXIH@Z)
1>BulletTestApp.obj : error LNK2001: unresolved external symbol "void __cdecl btAlignedFreeInternal(void *)" (?btAlignedFreeInternal@@YAXPAX@Z)
1>BulletTestApp.obj : error LNK2001: unresolved external symbol "public: virtual void __thiscall btConvexInternalShape::getAabbSlow(class btTransform const &,class btVector3 &,class btVector3 &)const " (?getAabbSlow@btConvexInternalShape@@UBEXABVbtTransform@@AAVbtVector3@@1@Z)
1>BulletTestApp.obj : error LNK2001: unresolved external symbol "public: virtual char const * __thiscall btCollisionShape::serialize(void *,class btSerializer *)const " (?serialize@btCollisionShape@@UBEPBDPAXPAVbtSerializer@@@Z)
1>BulletTestApp.obj : error LNK2001: unresolved external symbol "public: __thiscall btPolyhedralConvexShape::btPolyhedralConvexShape(void)" (??0btPolyhedralConvexShape@@QAE@XZ)
1>BulletTestApp.obj : error LNK2001: unresolved external symbol "public: virtual __thiscall btPolyhedralConvexShape::~btPolyhedralConvexShape(void)" (??1btPolyhedralConvexShape@@UAE@XZ)
1>BulletTestApp.obj : error LNK2001: unresolved external symbol "public: virtual void __thiscall btConvexInternalShape::setLocalScaling(class btVector3 const &)" (?setLocalScaling@btConvexInternalShape@@UAEXABVbtVector3@@@Z)
1>BulletTestApp.obj : error LNK2001: unresolved external symbol "public: virtual void __thiscall btCollisionShape::getBoundingSphere(class btVector3 &,float &)const " (?getBoundingSphere@btCollisionShape@@UBEXAAVbtVector3@@AAM@Z)
1>BulletTestApp.obj : error LNK2001: unresolved external symbol "public: virtual float __thiscall btCollisionShape::getAngularMotionDisc(void)const " (?getAngularMotionDisc@btCollisionShape@@UBEMXZ)
1>BulletTestApp.obj : error LNK2001: unresolved external symbol "public: virtual float __thiscall btCollisionShape::getContactBreakingThreshold(float)const " (?getContactBreakingThreshold@btCollisionShape@@UBEMM@Z)
1>BulletTestApp.obj : error LNK2001: unresolved external symbol "public: virtual void __thiscall btCollisionShape::serializeSingleShape(class btSerializer *)const " (?serializeSingleShape@btCollisionShape@@UBEXPAVbtSerializer@@@Z)
1>BulletTestApp.obj : error LNK2001: unresolved external symbol "public: virtual void __thiscall btBoxShape::getAabb(class btTransform const &,class btVector3 &,class btVector3 &)const " (?getAabb@btBoxShape@@UBEXABVbtTransform@@AAVbtVector3@@1@Z)
1>BulletTestApp.obj : error LNK2001: unresolved external symbol "public: virtual void __thiscall btBoxShape::calculateLocalInertia(float,class btVector3 &)const " (?calculateLocalInertia@btBoxShape@@UBEXMAAVbtVector3@@@Z)
1>BulletTestApp.obj : error LNK2001: unresolved external symbol "public: virtual bool __thiscall btPolyhedralConvexShape::initializePolyhedralFeatures(void)" (?initializePolyhedralFeatures@btPolyhedralConvexShape@@UAE_NXZ)
1>C:\Libraries and Headers\Bullet\bullet-2.78\msvc\BulletTestApp\Release\BulletTestApp.exe : fatal error LNK1120: 14 unresolved externals
我知道某处存在链接问题,但我完全遵循了说明,所以我不知道如何修复它。在查看添加的项目的属性时,我没有看到任何其他依赖项,如果不是它应该如何... 但我想我不明白这种方法首先使用库所以知识会有所帮助。
答案 0 :(得分:4)
好吧,显然右键单击我的TestBulletApp项目并单击“Project Dependencies”是我出错的地方。 msVS ++ 2010出于某种原因留下了选项,即使它是 doesn't work to do it that way。
要使项目依赖于解决方案中的其他项目,您必须右键单击项目,例如我的“TestBulletApp”,然后转到 Properties-> Common Properties-> Framework and References - >添加新参考“ 并添加依赖于已添加到sollution的静态库项目,例如'bulletCollision'或其他;还要检查右侧的”Link Library Dependencies“是否为True侧。
所以,是的,感谢排队的人......'咳嗽''咳嗽'=)