在 64 位 ubuntu lucid 上运行 64 位可执行文件

Yan*_*gon 9 64-bit

我有一个 ubuntu 10.04 64 位,我正在尝试启动一个 64 位可执行文件,但没有运气:

./lmrand1
-bash: ./lmrand1: No such file or directory    

ls -la lmrand1
-rwxr-xr-x 1 ysagon ysagon 191872 2011-09-05 18:13 lmrand1

file lmrand1
lmrand1: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked 
(uses sharedlibs), for GNU/Linux 2.6.9, stripped
Run Code Online (Sandbox Code Playgroud)

我也在 64 位 ubuntu 上:

uname -a
Linux dev 2.6.32-33-server #72-Ubuntu SMP Fri Jul 29 21:21:55 UTC 2011 x86_64 GNU/Linux
Run Code Online (Sandbox Code Playgroud)

可执行文件没有损坏,我可以在 redhat 企业上启动它。有人知道这是怎么回事吗。

编辑:对不起,我忘了把 ldd 的输出

ldd lmrand1
    linux-vdso.so.1 =>  (0x00007fffabdff000)
    libpthread.so.0 => /lib/libpthread.so.0 (0x00007fe8d176c000)
    libm.so.6 => /lib/libm.so.6 (0x00007fe8d14e9000)
    libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00007fe8d12d1000)
    libc.so.6 => /lib/libc.so.6 (0x00007fe8d0f4e000)
    libdl.so.2 => /lib/libdl.so.2 (0x00007fe8d0d4a000)
    /lib64/ld-lsb-x86-64.so.3 => /lib64/ld-linux-x86-64.so.2 (0x00007fe8d19a4000)
Run Code Online (Sandbox Code Playgroud)

小智 10

尝试安装 Linux Standard Base (lsb) 包。

sudo apt-get install lsb
Run Code Online (Sandbox Code Playgroud)

  • 我也遇到过这个问题,安装 lsb 包修复了它。似乎需要存在“/lib64/ld-lsb-x86-64.so.3”才能运行可执行文件,尽管“ldd”很高兴地将其重新映射到“/lib64/ld-linux-x86-” 64.so.2` 在其自己的输出中。 (2认同)