«Повреждение памяти» при следовании учебнику по физике: как исправить? - PullRequest
1 голос
/ 18 декабря 2011

Я только начинаю с Bullet, и у меня уже возникли трудности с первым уроком: http://bulletphysics.org/mediawiki-1.5.8/index.php/Hello_World#Tutorial:_Hello_World_Application

Мой код компилируется нормально, но он падает, когда достигает строки:

dynamicsWorld = new btDiscreteDynamicsWorld(dispatcher,broadphase,solver,collisionConfiguration);

и я получаю сообщение об ошибке (если оно действительно имеет смысл ...):

malloc (): повреждение памяти: 0x00000000014fcc10

Я пробовал обширный поиск по SO и в Google, но, похоже, ни у кого больше нет этой проблемы.

Я использую Ubuntu и Bullet 2.79.

EDIT После дальнейших исследований я обнаружил, что решением может быть добавление всех исходных файлов маркеров напрямую. Однако это создает новую проблему: компилятор не может найти vectormath/vmInclude.h в файле btSoftBodySolver_CPU.cpp, даже если он отображается в списке источников. Очевидно, я не могу сказать, исправлена ​​ли моя предыдущая ошибка, поскольку компиляция больше не завершается.

Ответы [ 2 ]

1 голос
/ 17 марта 2017

У меня была та же ошибка "повреждения памяти" в той же строке HelloWorld.cpp

. Для меня это было исправлено добавлением -DBT_USE_DOUBLE_PRECISION=1 к моей команде компиляции.

1 голос
/ 18 декабря 2011

Я сейчас решил это. Несмотря на ошибку, возникающую во время выполнения, проблема была в том, как были включены файлы библиотеки. Добавив каталог, в котором источник Bullet находился в компиляторе, он теперь работает без проблем.

...