Ich habe ein Ubuntu 10.04 64-Bit und versuche, eine ausführbare 64-Bit-Datei ohne Glück zu starten:
./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
Ich bin auch auf einem 64-Bit-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
Die ausführbare Datei ist nicht beschädigt, ich kann sie auf einem Redhat-Unternehmen starten. Weiß jemand was los ist.
edit: sorry ich habe vergessen die ausgabe von ldd zu setzen
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)
ldd lmrand1
undreadelf -a lmrand1|grep interpreter
stellen Sie sicher, dass alle aufgelisteten Dateien auf Ihrem System vorhanden sind.readelf -a lmrand1|grep interpreter [Requesting program interpreter: /lib64/ld-lsb-x86-64.so.3]
. Ich habe diese spezifische Datei nicht, aber wie Sie in der Ausgabe von ldd sehen können, wird sie einer anderen Datei zugeordnet.sudo ln -s /lib64/ld-linux-x86-64.so.2 /lib64/ld-lsb-x86-64.so.3
es funktioniert , wenn ich einen Simlink mache . Was ich nicht verstehe ist, warum ldd glücklich scheint?strace ./lmrand1
sehen, wie weit es kommt.Antworten:
Versuchen Sie, das Linux Standard Base (lsb) -Paket zu installieren.
quelle
/lib64/ld-lsb-x86-64.so.3
Notwendigkeit vorhanden sein muss, damit die ausführbare Datei ausgeführt werden kann, auch wennldd
sie/lib64/ld-linux-x86-64.so.2
in ihrer eigenen Ausgabe recht glücklich neu zugeordnet wird .