Назад | Перейти на главную страницу

32-битный exec не запускается, но работает при запуске через ltrace / strace

У меня есть 32-битный двоичный файл (работает на 64-битном хосте), который не запускается при запуске в одиночку, возвращая ошибку при загрузке общей библиотеки (не удается открыть файл общих объектов: нет такого файла или каталога). Но он отлично работает, когда я запускаю его с помощью ltrace или strace (я пытался найти точку отказа) ...

В чем дело? Я проверил, существует ли библиотека, я попытался добавить ее в LD_LIBRARY_PATH, я также проверил, что /lib/ld-linux.so.2 существует ...

Хост работает под управлением RedHat-EL 5.6 ...

Вам нужна 32-битная версия библиотек для запуска 32-битных приложений в 64-битной системе. К сожалению, у Redhat нет такого пакета, как ia32-libs, который бы устанавливал большинство из них, предполагается, что вы должны установить все 32-битные приложения с помощью yum, и он установит для вас соответствующие библиотеки. Если ваше приложение является сторонним, попробуйте установить 32-разрядную версию каждой библиотеки, которая ему нужна. Обычно они имеют суффикс .i586, поэтому вы выполняете что-то вроде «yum install libusb.i586».