3

我正在使用 Ubuntu 64 位和 Pharo 1.2.1

我编写了一些从 glibc 访问 crypt(3) 的 FFI 代码。我想将其更改为从我使用 apt-get 安装的 libxcrypt 访问 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 位与 32 位库的东西,或者我需要将库链接到其他地方但不知道。

我可以检查哪些步骤或事情来尝试找出无法找到外部模块的原因?

4

1 回答 1

3

这既是 64 位与 32 位库的问题,也是链接问题。

读这个:

http://forum.world.st/FFI-library-dependency-howto-td50461.html#a50462

帮助我了解了 Pharo 在哪里寻找库,所以我只需要安装 32 位 libxcrypt 并正确链接到它。

于 2011-05-04T22:00:38.367 回答