我刚刚开始使用 Bullet,并且在第一个教程中已经遇到了困难:http://bulletphysics.org/mediawiki-1.5.8/index.php/Hello_World#Tutorial:_Hello_World_Application
我的代码编译得很好,但是当它到达以下行时就会崩溃:
dynamicsWorld = new btDiscreteDynamicsWorld(dispatcher,broadphase,solver,collisionConfiguration);
我收到错误(如果这实际上有任何用处......):
malloc(): memory corruption: 0x00000000014fcc10
我在 SO 和 google 上尝试过大量搜索,但似乎没有其他人遇到这个问题。
我使用的是 Ubuntu 和 Bullet 2.79。
编辑
经过进一步研究,我发现一个解决方案可能是直接添加所有子弹源文件。然而,这引入了一个新问题:编译器无法在 btSoftBodySolver_CPU.cpp 文件中找到 vectormath/vmInclude.h
,即使它显示在源列表中。显然,我无法判断之前的错误是否已修复,因为编译不再完成。
最佳答案
我在 HelloWorld.cpp
的同一行遇到了相同的“内存损坏”错误
对我来说,这个问题是通过在编译命令中添加 -DBT_USE_DOUBLE_PRECISION=1
来解决的。
关于c++ - "memory corruption"当遵循物理教程 : how to fix? 时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8548594/