当二进制文件存在时,为什么会出现“未找到命令”的错误?

当二进制文件存在时,为什么会出现“未找到命令”的错误?

这是我的问题。我刚刚tests在 VirtualBox VM 中编译了一个 Linux 版本。当我运行它时,我得到:

bash: ./tests: No such file or directory

我做了一些研究,发现可能是权限问题、缺少库或架构不同。所以我检查了这些:

  • ls -al tests

    -rwxr-xr-x 1 me me 9948598 2011-02-21 01:54 tests
    
  • file tests

    tests: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.15, not stripped
    
  • uname -a

    Linux DevBox 2.6.35-25-generic #44-Ubuntu SMP Fri Jan 21 17:40:44 UTC 2011 x86_64 GNU/Linux
    
  • ldd tests

    linux-vdso.so.1 =>  (0x00007fff7db90000)
    libpthread.so.0 => /lib/libpthread.so.0 (0x00007f10ef14c000)
    libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00007f10eee46000)
    libz.so.1 => /lib/libz.so.1 (0x00007f10eec2d000) 
    libm.so.6 => /lib/libm.so.6 (0x00007f10ee9aa000)
    libc.so.6 => /lib/libc.so.6 (0x00007f10ee627000)
    /lib/ld64.so.1 => /lib64/ld-linux-x86-64.so.2 (0x00007f10ef384000)
    libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00007f10ee410000)
    

这里有什么问题?

答案1

答案2

文件名真的是“测试”吗?或者它只是看起来像那样?

尝试重命名文件,可以吗?不用按 TAB 键?

也许您在名称中输入了一个不显示的 CTRL 字符,以某种方式进行了复制和粘贴或按下了某些组合键?

stat tests

如果不按 TAB 键编写测试,会怎样?

相关内容