我正在使用Ubuntu 64bit和Pharo 1.2.1
我写了一些从glibc访问crypt(3)的FFI代码。我想将其更改为从libxcrypt访问我使用apt-get安装的crypt。当我从以下方法更改方法时:
ffiCrypt: aKey with: aSalt
<cdecl: char* 'crypt' (char* char*) module: 'crypt'>
^self externalCallFailed
到:
ffiCrypt: aKey with: aSalt
<cdecl: char* 'crypt' (char* char*) module: '/lib/libxcrypt.so.1'>
^self externalCallFailed
我收到外部模块未找到错误。我已经链接到我的图像所在目录中的libxcrypt.so.1文件。
我怀疑它可能是64位vs 32位库的东西,或者我需要将库链接到其他地方,但不知道。
我可以检查哪些步骤或事项,以尝试找出无法找到外部模块的原因?
答案 0 :(得分:3)
这是一个64位到32位的库问题和一个链接问题。
读这个:
http://forum.world.st/FFI-library-dependency-howto-td50461.html#a50462
帮助我了解了Pharo寻找库的位置,所以我只需安装32位libxcrypt并正确链接到它。