我有一个 32 位二进制文件(在 64 位主机上运行),单独启动时无法启动,加载共享库时返回错误(无法打开共享对象文件:没有这样的文件或目录)。但是当我使用 ltrace 或 strace 启动它时,它运行正常(我试图找到故障点)...
怎么了?我检查了库是否存在,尝试将其添加到 LD_LIBRARY_PATH,还检查了 /lib/ld-linux.so.2 是否存在...
主机正在运行 RedHat-EL 5.6...
答案1
您需要 32 位版本的库才能在 64 位系统上运行 32 位应用程序。遗憾的是,Redhat 没有像 ia32-libs 这样的软件包来安装大多数库,因此您应该使用 yum 安装所有 32 位应用程序,它会为您安装相应的库。如果您的应用程序是第三方的,请尝试安装它所需的每个库的 32 位版本,它们通常具有 .i586 后缀,因此您可以执行类似“yum install libusb.i586”的命令。