无法在 Pharo 中运行沃登物理示例

问题描述 投票:0回答:1

我正在尝试在 Pharo 中运行 Woden 物理示例,其中涉及正确编译 Bullet 并在 Pharo 中正确安装 Smalltalk 绑定。

我正在使用 Linux Mint 17 x64。

但是NativeBoost似乎无法加载已编译的库。我一直在使用此处提供的来源:

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

https://github.com/ronsaldo/swig

我使用提供的构建脚本构建了 swig 的修改版本以及项目符号库和绑定。 我还仔细检查了项目符号库是否为 32 位。 打开 Woden 物理示例会返回此错误:

 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”,而 pharo-vm 的 ABI 是“UNIX - System V”

这可能是这里的问题吗? 编译时如何强制 ABI 为 System V?我使用 gcc 4.8.2

或者我可以执行哪些步骤?

c++ swig smalltalk pharo bullet
1个回答
0
投票

如果您无法在 Pharo 中运行木制物理示例,请确保安装并正确加载所有必要的依赖项。检查 Woden 物理库是否与您的 Pharo 版本兼容。如果需要,更新或重新安装库。检查代码是否有错误并验证文档中的设置步骤。如果问题仍然存在,请在 Pharo 社区论坛或沃登物理 GitHub 存储库上寻求帮助。

https://handicrafts-shop.com/product-category/wooden-urns/

© www.soinside.com 2019 - 2024. All rights reserved.