Как использовать 32-битный скомпилированный файл общих объектов (.so) на 64-битном RHEL?

У меня есть общий файл объекта libfault.so для моего 32-битного скомпилированного приложения на RHEL 6.4. Я хочу предварительно загрузить этот файл при запуске приложения. Я поместил его в каталог / usr / local / lib /.

Но при запуске приложения я получаю следующую ошибку.

ERROR: ld.so: object 'libfault.so' from LD_PRELOAD cannot be preloaded: ignored. 

Но, если я скомпилирую libfault.so в 64-разрядной версии и поместил в / usr / local / lib64 /, я не получу ошибку. Но файл не выполняет свою предназначенную функцию, так как мое приложение составлено 32 бита.

Вы можете использовать переменную среды $LD_LIBRARY_PATH чтобы переопределить путь поиска динамического загрузчика при поиске загружаемых библиотек.

Чтобы сделать это временно для одного приложения, вы можете вызвать его так:

 $ LD_LIBRARY_PATH=/usr/local/lib <your executable here> 

Вы можете сделать изменение более постоянным для экземпляра оболочки, экспортировав эту переменную:

 $ export LD_LIBRARY_PATH=/usr/local/lib 

Отрегулируйте дорожки выше, когда это необходимо, когда вы храните 32-битный .so .