在Ubuntu 64位系统上运行ELF 64位LSB可执行文件

4

我正在尝试运行一个预编译的软件包(据说是针对'linux64'的),但出现以下错误信息:

t.kuilman@steroid:~/Peeper/bin/netchop-3.1/bin$ ./netChop 
-bash: ./netChop: cannot execute binary file: Exec format error

我查看了这个文件的编译方式(见下方),结果发现它是一个 ELF 64 位 LSB 可执行文件。

t.kuilman@steroid:~/Peeper/bin/netchop-3.1/bin$ file ./netChop 
./netChop: ELF 64-bit LSB  executable, no machine, version 1 (SYSV), statically linked, for GNU/Linux 2.4.1, for SuSE 9.1, stripped
t.kuilman@steroid:~/Peeper/bin/netchop-3.1/bin$ ldd ./netChop 
    not a dynamic executable
t.kuilman@steroid:~/Peeper/bin/netchop-3.1/bin$ uname -a
Linux steroid 3.13.0-76-generic #120-Ubuntu SMP Mon Jan 18 15:59:10 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

我该如何在我的系统上运行这个文件(Ubuntu 14.04.1 LTS (GNU/Linux 3.13.0-76-generic x86_64))?


那个可执行文件似乎有些非常奇怪的地方。你能否将它上传到某个地方,或者提供前512个字节的十六进制转储? - user149341
1
你能在虚拟机(VirtualBox)中启动SuSE 9.1 64位版本并尝试一下吗? - jamieguinan
1个回答

1
这个可执行文件可能是损坏的,或者是以一些非标准的方式构建的:
ELF 64-bit LSB  executable, no machine, version 1 (SYSV) ...

一个正常的静态链接的Linux可执行文件应该长这样:

ELF 64-bit LSB  executable, x86-64, version 1 (GNU/Linux)

请注意机器(“无机器”与“x86-64”)和操作系统ABI(“SYSV”与“GNU / Linux”)之间的差异。
无论如何,除了向软件包生产商抱怨外,您什么都无法做。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接