Невозможно запустить пример физики Водена в Pharo

Я пытаюсь запустить Пример физики Водена в Pharo, который включает в себя правильную компиляцию Bullet и правильную установку привязок к малым разговорам в Pharo.

Я использую Linux Mint 17 x64.

Но NativeBoost, похоже, не может загрузить скомпилированные библиотеки. Я использовал источники, предоставленные здесь:

https://github.com/ronsaldo/bullet-pharo

https://github.com/ronsaldo/swig

Я собрал модифицированную версию swig, а также библиотеки маркеров и привязки с помощью предоставленных скриптов сборки.
Я также дважды проверил, что библиотеки маркеров являются 32-битными.
Открытие примера физики Водена возвращает эту ошибку:

 failed to get a symbol address:
PharoNB_new_BTDefaultCollisionConfiguration__SWIG_1

При проверке стека вызовов в отладчике оказывается, что дескриптор модуля равен 0.

Я подтвердил это, выполнив то же сообщение, что и

BulletCInterface nbLibraryNameOrHandle

выполняет:

NativeBoost forCurrentPlatform loadModule: 'BulletPharo'

Это сообщение возвращает 0. Я попытался указать полный путь к libPharoBullet.so в рабочей области, например:

NativeBoost forCurrentPlatform loadModule:
'/home/martin/.local/share/Pharo/bullet-pharo/libBulletPharo.so'

с тем же результатом. Я также проверил это с моей 32-битной системной библиотекой (liblzma), и там NativeBoost смог загрузить ее, так как он возвращал ненулевой дескриптор.

Так что я подозреваю, что во время компиляции что-то пошло не так …
Я тоже сделал

readelf -h libPharoBullet.so

и его ABI был «UNIX — GNU», в то время как ABI pharo-vm — «UNIX — System V»

Может ли это быть проблемой здесь?
Как я могу заставить ABI быть System V при компиляции? Я использую gcc 4.8.2

Или какие шаги я мог бы иначе выполнить?

2

Решение

Задача ещё не решена.

Другие решения


По вопросам рекламы ammmcru@yandex.ru
Adblock
detector