64-битные и 32-битные инструменты работают в одной среде

0

У меня есть сценарий (bash), который вызывает 6 инструментов, 4 из которых скомпилированы 32 бита и 2 из них скомпилированы 64 бит. один 32-битный и один 64-разрядный - это инструменты, зависящие от оракула. Поскольку зависимые от Oracle инструменты зависят от динамических библиотек (.so файлов), я получаю Errors как *.so не найден для одного из инструментов (либо 32-битного, либо 64-битного, что я установил в ORACLE_HOME, я думаю).
Кто-нибудь, пожалуйста, дайте предложение, как справиться с этой ситуацией?

Заранее спасибо

Теги:
build
dynamic-linking
dynamic-loading

1 ответ

1
Лучший ответ

В скрипте перед вызовом 64-битных инструментов установите LD_LIBRARY_PATH в 64-разрядный *.so.

По моему пониманию, исполняемый файл будет принимать правильные *.so, если в LD_LIBRARY_PATH есть как 32-разрядные, так и 64-разрядные *.so, поскольку загрузчики знают, что игнорируют библиотеки неправильной архитектуры.

Для получения дополнительной информации см. Это Как общие библиотеки работают в смешанной 64-битной /32-битной системе?

  • 0
    Спасибо вам, ссылка очень полезна.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню