shell“未找到”响应的可能原因是什么?

shell“未找到”响应的可能原因是什么?

当尝试运行可执行文件时,shell 响应“未找到”的所有可能原因是什么?

  • 可执行文件确实存在并且具有执行权限( chmod +x)。
  • ldd表示所有依赖项都存在。
  • 文件表明可执行文件是针对正确的架构进行编译的(没有理由不应该这样,它是在 Yocto 构建中与系统的其余部分一起编译的)。

还有什么其他原因呢?

答案1

给定具有可执行权限的二进制文件,“未找到”错误消息的常见原因是二进制文件请求的动态加载程序不存在。您可以使用以下方法检查readelf

$ readelf -l /path/to/binary | grep interpreter
      [Requesting program interpreter: /lib64/ld-linux-x86-64.so.2]

如果该解释器不存在,则可执行文件将无法运行,并出现“未找到”错误。看在 64 位系统上运行 32 位二进制文​​件时收到“未找到”消息了解详情。

相关内容