无法在 qemu 或 gem5 中打开 /lib/ld-linux-aarch64.so.1

cannot open /lib/ld-linux-aarch64.so.1 in qemu or gem5

我正在尝试在我的台式计算机上模拟一个简单的 Hello world ARM 示例。我尝试了 qemu 和 gem5。两者都给出了类似的错误。他们找不到 ld-linux-aarch64.so.1。其实我也找不到。如果我能找到它,我会用 -L(在 qemu 中)或 --redirects(在 gem5 中)显示它。

文件是:

armhello: ELF 64-bit LSB shared object, ARM aarch64, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, BuildID[sha1]=23a21b7a545ac510923b6b3713d2bbee092f820a, for GNU/Linux 3.7.0, not stripped

编译为:aarch64-linux-gnu-gcc

我正在尝试 运行 在 qemu 中使用:

qemu-aarch64 armhello

我收到这个错误:

/lib/ld-linux-aarch64.so.1: No such file or directory

我尝试在 gem5 中 运行 它:(simpleARM.py 指向我的可执行文件(命名为 armhello))

build/ARM/gem5.opt configs/tutorial/simpleARM.py

我收到这个错误:

panic: panic condition fd < 0 occurred: Failed to open file /lib/ld-linux-aarch64.so.1.

我该如何解决这个问题?

注意:我知道它在编译时有效 --static。但是我需要 运行 更复杂的动态链接的二进制文件,我无法更改它们。这只是一个例子。

对于 gem5,您可以使用 --redirects--interp-dirHow to run a dynamically linked executable syscall emulation mode se.py in gem5?

对于 qemu 你需要 -L: Using dynamic linker with qemu-arm