Вопрос

Я использую Ubuntu 64bit и Pharo 1.2.1

Я написал какой -то код FFI, который обращается к Crypt (3) из Glibc. Я хотел бы изменить его, чтобы получить доступ к крипту из LibxCrypt, который я устанавливаю с помощью APT-GET. Когда я меняю метод с:

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 -битной библиотекой или что мне нужно связать библиотеку где -то еще, но не знаю.

Какие шаги или вещи я мог бы проверить, чтобы попытаться отследить, почему внешний модуль не может быть найден?

Это было полезно?

Решение

Это была как 64 -битная библиотечная проблема, так и проблема связывания.

Чтение этого:

http://forum.world.st/ffi-library-tependency-howto-td50461.html#a50462

Помогал мне узнать о том, где Фаро ищет библиотеки, поэтому мне просто нужно было установить 32 -битный LibxCrypt и правильно ссылаться на него.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top