3

Ubuntu64ビットとPharo1.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 に答える