无法在Pharo中运行Woden Physics示例

时间:2015-01-30 20:13:51

标签: c++ swig smalltalk pharo bullet

我正在尝试在Pharo中运行Woden Physics示例,其中包括正确编译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

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

0 个答案:

没有答案