Ubuntu(xenial)无法执行二进制文件:Exec 格式错误

Ubuntu(xenial)无法执行二进制文件:Exec 格式错误

我在运行文件 ecl.e 时遇到问题,它是一个 32 位程序。

如果我使用 bash 运行,我会得到以下信息:

bash /home/user/miniconda2/envs/iraf27/iraf//bin.linux/ecl.e
/home/user/miniconda2/envs/iraf27/iraf//bin.linux/ecl.e: /home/user/miniconda2
/envs/iraf27/iraf//bin.linux/ecl.e: cannot execute binary file

和,

./home/user/miniconda2/envs/iraf27/iraf//bin.linux/ecl.e
-bash: ./home/user/miniconda2/envs/iraf27/iraf//bin.linux/ecl.e: No such file or directory

我在 x86_64 上运行该程序。所以我明白没有正确的库会出现问题。我希望通过获取库来解决这个问题:

apt-get update
sudo apt-get install libc6:i386 libz1:i386 libncurses5:i386 
libbz2-1.0:i386 libuuid1:i386 libxcb1:i386 libxmu6:i386

但问题仍然存在。

如果我在其上运行文件,则输出如下:

file /home/user/miniconda2/envs/iraf27/iraf//bin.linux/ecl.e: ELF 32-bit LSB executable, 
Intel 80386, version 1 (SYSV), dynamically linked, 
interpreter /lib/ld-linux.so.2, for GNU/Linux 2.6.9, not stripped

和 ldd:

ldd /home/user/miniconda2/envs/iraf27/iraf//bin.linux/ecl.e
not a dynamic executable

答案1

此错误通常意味着内核无法处理可执行文件格式。如果您使用 Windows 10 的 Windows On Linux 子系统(该子系统仅运行 64 位可执行文件),则会发生这种情况。如果您将 Ubuntu 更新到 18.04 或 18.10,则可以通过 本机安装 64 位版本sudo apt install iraf

相关内容