C++ 无法在Pharo中运行沃登物理示例
我正在尝试在Pharo中运行Woden Physics示例,其中包括在Pharo中正确编译Bullet并正确安装smalltalk绑定 我使用的是LinuxMint17x64 但是NativeBoost似乎无法加载已编译的库。我一直在使用此处提供的来源: 我使用提供的构建脚本构建了修改后的swig版本以及bullet库和绑定。 我还仔细检查了bullet库是否为32位。 打开Woden physics示例将返回以下错误:C++ 无法在Pharo中运行沃登物理示例,c++,swig,smalltalk,pharo,bullet,C++,Swig,Smalltalk,Pharo,Bullet,我正在尝试在Pharo中运行Woden Physics示例,其中包括在Pharo中正确编译Bullet并正确安装smalltalk绑定 我使用的是LinuxMint17x64 但是NativeBoost似乎无法加载已编译的库。我一直在使用此处提供的来源: 我使用提供的构建脚本构建了修改后的swig版本以及bullet库和绑定。 我还仔细检查了bullet库是否为32位。 打开Woden physics示例将返回以下错误: failed to get a symbol address: P
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-SystemV”
这就是问题所在吗?
如何在编译时强制ABI为System V?我使用GCC4.8.2
或者我可以执行哪些步骤