Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法执行二进制文件Linux-没有这样的文件或目录_Linux_Bash - Fatal编程技术网

无法执行二进制文件Linux-没有这样的文件或目录

无法执行二进制文件Linux-没有这样的文件或目录,linux,bash,Linux,Bash,我有一个可执行文件launcher-x64-linux,当调用/launcher-x64-linux时,它会弹出“bash:./launcher-x64-linux:没有这样的文件或目录” 调用filelauncher-x64-linux可以得到: launcher-x64-linux:ELF 64位LSB可执行文件,x86-64,版本1(SYSV),动态链接,解释器/lib64/ld-linux-x86-64.so.2,对于GNU/linux 2.6.32,BuildID[sha1]=4ec1

我有一个可执行文件
launcher-x64-linux
,当调用
/launcher-x64-linux
时,它会弹出“bash:./launcher-x64-linux:没有这样的文件或目录”

调用
filelauncher-x64-linux
可以得到:

launcher-x64-linux:ELF 64位LSB可执行文件,x86-64,版本1(SYSV),动态链接,解释器/lib64/ld-linux-x86-64.so.2,对于GNU/linux 2.6.32,BuildID[sha1]=4ec13ff8901e49db678f8c4ba00bb6da52ef55b3,剥离

调用
uname-m
抛出x86_64和
readelf launcher-x64-linux | grep解释器
将程序解释器定位在/lib64/ld-linux-x86-64。so.2

getconf LONGBIT
返回64

所以我知道这不是32/64位二进制和操作系统之间的不匹配

调用ldd launcher-x64-linux告诉我:

  • libpthread.so.0
  • libdl.so.2
  • libstdc++.so.6
  • libm.so.6
  • libgcc_.s.so.1
  • libc.so.6
  • ld-linux-x86-64.so.2 我想这意味着我没有错过任何图书馆

我错过什么了吗?我很困惑,为什么当我尝试执行它时,会被告知“没有这样的文件或目录”。谢谢

strace-ff-e trace=open,openat sh-c./launcher-x64-linux
可能会提供一些有用的信息
/lib64/ld-linux-x86-64.so.2
存在吗?@Barmar不存在,/lib64在某些系统上是完全正常的地方,例如Arch linux。@ypnos-Hmm,所以可能是为Arch linux编译的可执行文件,但是他们试图在其他东西上运行它。@ypnos
文件
的输出来自ELF头,该路径必须存在于当前系统上。如果没有,你会得到OP描述的症状。我的Debian系统也使用此路径。