如何在Ubuntu上运行无扩展(也许是ELF)文件?

我在linux上获得了一个“二进制”文件,而在一个特定的任务中,我获得了一个单独的文件。 该程序是一个exe的窗口。 在Linux上,该文件的linux版本和windows一样具有相同的function。

但是,我无法执行此操作。 我尝试了(在terminal上)通过文件名,. ./[filename] chmod +x [filename]执行它,甚至尝试了chmod +x [filename] ,然后尝试第二种方法。

对于一切…我得到结果:“找不到命令”。 (顺便说一句,这个文件肯定是有的)。

我应该做些什么? 其上的文件命令产生:

 ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux.so.2, for GNU/Linux 2.6.32, BuildID[sha1]=e805f746e65c09cc8b0c037d8a8c27ee0a6a051c 

我的猜测是,这是64位系统上的32位编译。 我使用gcc上的-m32选项将一个小的c文件交叉编译成一个二进制文件。 这也需要一些额外的软件包。 结果a.out看起来像这样。

 % file a.out a.out: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux.so.2, for GNU/Linux 2.6.32, BuildID[sha1]=be02470c8337b96e7deaaff323bc53865991c3ab, not stripped 

将其与本机系统二进制文件比较

 % file /bin/ls /bin/ls: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, BuildID[sha1]=a0823e17cafbe5b2296346216445566840fdfd88, stripped 

运行a.out显示了这一点。

 % ./a.out zsh: no such file or directory: ./a.out 

特定的“未找到命令”消息是我想bash打印的东西。 我自己使用zsh。

为了使这个工作,你可以安装multilib软件包。 我没有把它缩小到确切的软件包,但在Debian上安装gcc-multilib可以提取所有你需要的东西。 安装后,这是我得到的。

 % ./a.out 3.140523 

(该方案应该估计PI的价值)。

注意:我实际上需要安装gcc-multilib来编译这个文件。 然后我卸载了软件包,模仿一个没有32位运行时库的64位系统。