【问题标题】:Compile error when I link Bullet physics当我链接子弹物理时编译错误
【发布时间】:2013-09-14 19:30:01
【问题描述】:

我已经下载了子弹物理库,使用带有默认设置的 CMake 为其创建了一个 Code::Blocks 项目并构建了它。然后我将 lib 文件夹添加到库路径,并将 src 文件夹添加到包含路径。当我使用-lBulletCollision -lBulletDynamics -lLinearMath 编译我的项目时,我(除其他外)收到以下错误消息:

c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\..\..\..\libBulletDynamics.a(btRigidBody.obj):btRigidBody.cpp|| undefined reference to `_Unwind_Resume'|

我在 Internet 上了解到,当您使用不同的异常机制(DW2 和 SJLJ)编译东西时,经常会发生编译错误,但我使用相同的编译器配置编译了 Bullet 和我的项目。

【问题讨论】:

  • 你使用的构建和链接命令是什么?
  • 除了为我的项目启用 C++11 (-std=c++11) 之外,我将两者都保留为默认值。我认为 Code::Blocks 只是运行 g++,如果你不改变任何东西,没有任何额外的标志。
  • @user2779931 你为什么不去发现而不是猜测?代码块执行的所有命令细节都在构建日志下。
  • 刚刚看了看,我是对的。

标签: c++ linker bulletphysics


【解决方案1】:

即使它很旧,我也会回答这个问题,以防其他人偶然发现它。

已经有一段时间了,但我记得因为链接顺序不正确而卡住了。我刚刚查看了一个成功的旧项目,顺序是 BulletDynamics 在顶部,然后是 BulletCollission,最后是 LinearMath。我很确定我当时使用了 Code::Blocks v 10 和 GCC 4.3。

【讨论】:

  • 非常感谢你发布这个,它让我免于很多不必要的头痛!
猜你喜欢
  • 2012-11-06
  • 1970-01-01
  • 2012-08-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-02-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多