原文链接:[bytefreaks.net][https://bytefreaks.net/gnulinux/how-to-find-the-program-interpreter-that-a-linux-application-requests]
最近,我们尝试执行一个应用程序,但出现以下错误:
-bash:./a.out:No such file or directory"
发生此错误的原因是我们的应用程序试图使用该机器上不可用的解释器。
我们使用了readelf
显示有关ELF文件的信息(包括解释器信息)的实用程序来解决我们的问题。
具体来说,我们使用readelf -l ./a.out
它来显示文件的段标题中包含的信息(如果有的话)。
(您可以-l
用--program-headers
或替换参数--segments
,它们相同)。
从生成的数据中,我们仅需要以下行:
[Requesting program interpreter: /lib/ld-linux-armhf.so.3]
也可以使用以下命令:
readelf -p .interp a.out
#示例输出
# [ 0] /lib64/ld-linux-x86-64