动态链接器可以通过运行一些动态链接程序或共享对象来间接运行(在这种情况下,不能传递动态链接器的命令行选项,在 ELF 情况下,动态链接器存储在 .interp程序的一部分被执行)或直接通过运行:
/lib/ld-linux.so.* [选项] [程序 [参数]]
https://jlk.fjfi.cvut.cz/arch/manpages/man/core/man-pages/ld.so.8.en
类似的信息可以在Program Library HOWTO中找到。
但是当我尝试时,
$ LD_DEBUG=libs /usr/lib/ld-linux.so.2 ls
23325: find library=ls [0]; searching
23325: search cache=/etc/ld.so.cache
23325:
ls: error while loading shared libraries: ls: cannot open shared object file
$ LD_DEBUG=libs ls
23503: find library=libcap.so.2 [0]; searching
23503: search cache=/etc/ld.so.cache
23503: trying file=/usr/lib/libcap.so.2
...
我究竟做错了什么?有没有办法ld-linux.so
直接用来运行程序?
尝试使用完整路径
ls
: